Google+ साइन-इन से माइग्रेट करें

उपयोगकर्ताओं पर दायरे में होने वाले बदलावों के असर को कम करने का तरीका

  1. अगर आपके ऐप्लिकेशन में किसी ऐसे उपयोगकर्ता के ईमेल पते की ज़रूरत है जिसकी पुष्टि हो चुकी है और आपने इस काम के लिए पहले profile.emails.read का इस्तेमाल किया था, तो इसके बजाय email का इस्तेमाल करें.
  2. मंज़ूरी पा चुके पुष्टि के अनुरोध के साथ profile.emails.read के लिए मंज़ूरी पाएं. मैं पुष्टि के लिए कैसे सबमिट करूं? लेख पढ़ें
  3. पिछले उपयोगकर्ता टोकन को उस दायरे से निरस्त करें जिसे हटाया जाना है या ऐप्लिकेशन का ऐक्सेस पूरी तरह से हटाएं. उदाहरण के लिए, profile.emails.read ऐक्सेस वाले टोकन को रद्द किया जाना चाहिए. हमारा सुझाव है कि जब आपके उपयोगकर्ता आपके ऐप्लिकेशन का इस्तेमाल करें, तब आप सहमति रद्द कर दें, ताकि आपको तुरंत उपयोगकर्ता की सहमति मिल सके.
  4. अपने उपयोगकर्ताओं से कहें कि वे profile.emails.read के बिना, नए दायरे, जैसे कि email के लिए फिर से सहमति दें.
  5. उस दायरे को हटाएं जिसे Google API के लिए OAuth सहमति स्क्रीन कॉन्फ़िगरेशन से हटाना है.

अपनी साइट को Google+ साइन-इन से Google में माइग्रेट करने के लिए आपको ये बदलाव करने होंगे साइन-इन इस पर निर्भर करता है कि आप किस Google+ साइन-इन फ़्लो का इस्तेमाल करते हैं. आम तौर पर, माइग्रेशन के लिए आपको अपना साइन-इन बटन, अनुरोध किए गए दायरे, और निर्देश अपडेट करने होंगे Google से प्रोफ़ाइल की जानकारी वापस पाने का तरीका जानें.

अपना साइन-इन बटन अपडेट करते समय, G+ को रेफ़र न करें या लाल रंग का इस्तेमाल न करें. हमारे अपडेट किए हुए नियमों का पालन करें ब्रैंडिंग के दिशा-निर्देश देखें.

ज़्यादातर G+ साइन-इन ऐप्लिकेशन ने दायरों के कुछ कॉम्बिनेशन का अनुरोध किया है: plus.login, plus.me, और plus.profile.emails.read. आपको फिर से मैप करना होगा आपके स्कोप इस तरह हैं:

पुराना दायरा नया दायरा
plus.login profile
plus.me openid
plus.profile.emails.read email

Google+ साइन-इन के कई लागू करने वालों ने कोड फ़्लो का इस्तेमाल करें. इसका मतलब है Android, iOS या JavaScript ऐप्लिकेशन को Google से OAuth कोड मिलता है और क्लाइंट, उस कोड को क्रॉस-साइट अनुरोध के साथ सर्वर पर वापस भेजता है जालसाज़ी से सुरक्षा. इसके बाद सर्वर, कोड की पुष्टि करता है और रीफ़्रेश करता है और ऐक्सेस टोकन से, people.get एपीआई से उपयोगकर्ता की प्रोफ़ाइल की जानकारी हासिल की जा सकती है.

Google अब सुझाव देता है कि आप किसी आईडी टोकन का अनुरोध करें और उस आईडी टोकन को अपने क्लाइंट को आपके सर्वर पर जोड़ें. आईडी टोकन में, अलग-अलग साइटों पर जालसाज़ी से सुरक्षा मिलती है बिल्ट-इन है और आपके सर्वर पर भी स्थिर रूप से सत्यापित किया जा सकता है, जो Google के सर्वर से उपयोगकर्ता की प्रोफ़ाइल की जानकारी पाने के लिए, अतिरिक्त एपीआई कॉल. फ़ॉलो करें अपने सर्वर पर आईडी टोकन की पुष्टि करने के निर्देश देखें.

अगर आपको अब भी प्रोफ़ाइल की जानकारी पाने के लिए, कोड फ़्लो का इस्तेमाल करना है, तो आप ऐसा कर सकते हैं. सर्वर को ऐक्सेस टोकन मिलने के बाद, आपको ये काम करने होंगे उपयोगकर्ता की प्रोफ़ाइल से जुड़ी जानकारी पाना हमारे साइन-इन क्रेडेंशियल में बताए गए userinfo एंडपॉइंट से खोज से जुड़ा दस्तावेज़. एपीआई रिस्पॉन्स का फ़ॉर्मैट Google+ प्रोफ़ाइल रिस्पॉन्स से अलग होता है, इसलिए आपको आपकी पार्सिंग को नए फ़ॉर्मैट में अपडेट करना होगा.

एचटीएमएल में साइन इन करने वाले बटन को माइग्रेट करना

अगर आपने कक्षा के असाइनमेंट के ज़रिए अपने पेज पर Google+ साइन-इन बटन शामिल किया है g-signin एलिमेंट में ये बदलाव करें:

  • जब क्लाइंट आईडी की जानकारी दी जाती है, तो <meta> टैग में, data- विशेषता या पैरामीटर ऑब्जेक्ट, स्ट्रिंग clientid को client_id, जैसा कि इस उदाहरण में दिखाया गया है:

    <!-- Google+ Sign-in (old) -->
    <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
    

    <!-- Google Sign-in (new) -->
    <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
    
  • इसके बजाय, साइन-इन बटन एलिमेंट को g-signin2 क्लास असाइन करें g-signin. इसके साथ ही, सिंगल कॉलबैक की मदद से किया जाता है, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:

    <!-- Google+ Sign-in (old) -->
    <div
      class="g-signin"
      data-callback="signinCallback">
    </div>
    

    <!-- Google Sign-in (new) -->
    <div
      class="g-signin2"
      data-onsuccess="onSignIn"
      data-onfailure="onSignInFailure">
    </div>
    
  • किसी एक कॉलबैक हैंडलर के बजाय, सक्सेस और फ़ेलियर हैंडलर तय करें, जैसा कि नीचे दिए गए उदाहरण में बताया गया है:

    // Google+ Sign-in (old)
    function signinCallback(authResult) {
      if (authResult['status']['signed_in']) {
        // Handle successful sign-in
      } else {
        // Handle sign-in errors
        console.log('Sign-in error: ' + authResult['error']);
      }
    }
    

    // Google Sign-in (new)
    function onSignIn(googleUser) {
      // Handle successful sign-in
    }
    function onSignInFailure() {
      // Handle sign-in errors
    }
    
  • ये बदलाव, आपके डिफ़ॉल्ट दायरों को profile email openid में अपडेट कर देते हैं. आपको उपयोगकर्ता की प्रोफ़ाइल की बुनियादी जानकारी मिल सकती है, जैसे कि नाम, ईमेल, और फ़ोटो इमेज यूआरएल, इस तरह से:

    // Google Sign-in (new)
    function onSignIn(googleUser) {
      let profile = googleUser.getBasicProfile();
      let fullName = profile.getName();
      let email = profile.getEmail();
      let imageUrl = profile.getImageUrl();
    }
    

डाइनैमिक रूप से रेंडर किए गए साइन इन बटन को माइग्रेट करना

अगर आपने gapi.signin.render(), ये बदलाव करें:

  • जब क्लाइंट आईडी की जानकारी दी जाती है, तो <meta> टैग में, data- विशेषता या पैरामीटर ऑब्जेक्ट, स्ट्रिंग clientid को client_id, जैसा कि इस उदाहरण में दिखाया गया है:

    <!-- Google+ Sign-in (old) -->
    <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
    

    <!-- Google Sign-in (new) -->
    <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
    
  • 'साइन-इन करें' बटन को यूआरएल के बजाय, gapi.signin2.render() का इस्तेमाल करके रेंडर करें gapi.signin.render(), जैसा कि इस उदाहरण में दिखाया गया है:

    // Google+ Sign-in (old)
    gapi.signin.render('myButton', additionalParams);
    

    // Google Sign-in (new)
    gapi.signin2.render('myButton', additionalParams);
    
  • किसी एक कॉलबैक हैंडलर के बजाय, सक्सेस और फ़ेलियर हैंडलर तय करें, जैसा कि नीचे दिए गए उदाहरण में बताया गया है:

    // Google+ Sign-in (old)
    function signinCallback(authResult) {
      if (authResult['status']['signed_in']) {
        // Handle successful sign-in
      } else {
        // Handle sign-in errors
        console.log('Sign-in error: ' + authResult['error']);
      }
    }
    

    // Google Sign-in (new)
    function onSignIn(googleUser) {
      // Handle successful sign-in
    }
    function onSignInFailure() {
      // Handle sign-in errors
    }
    

ये बदलाव, आपके डिफ़ॉल्ट दायरों को profile email openid में अपडेट कर देते हैं. आप getBasicProfile() तरीके की मदद से, उपयोगकर्ता की प्रोफ़ाइल की बुनियादी जानकारी पाना.

JavaScript से शुरू किए गए साइन इन फ़्लो को माइग्रेट करना

अगर आपने उपयोगकर्ताओं को gapi.auth.signIn() पर कॉल करके साइन इन फ़्लो शुरू किया था साइन-इन करें बटन पर क्लिक करके ये बदलाव करें:

  • जब क्लाइंट आईडी की जानकारी दी जाती है, तो <meta> टैग में, data- विशेषता या पैरामीटर ऑब्जेक्ट, स्ट्रिंग clientid को client_id, जैसा कि नीचे दिए गए उदाहरण में बताया गया है:

    <!-- Google+ Sign-in (old) -->
    <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
    

    <!-- Google Sign-in (new) -->
    <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
    
  • बटन के होने पर साइन-इन फ़्लो शुरू करने के लिए, gapi.auth2.attachClickHandler() का इस्तेमाल करें को दबाया जाता है, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:

    // Google+ Sign-in (old)
    var signinButton = document.getElementById('signinButton');
    signinButton.addEventListener('click', function() {
      gapi.auth.signIn(additionalParams);
    });
    

    // Google Sign-in (new)
    auth2 = gapi.auth2.init();
    auth2.attachClickHandler('signinButton', additionalParams, onSignIn, onSignInFailure);
    
  • किसी एक कॉलबैक हैंडलर के बजाय, सक्सेस और फ़ेलियर हैंडलर तय करें, जैसा कि नीचे दिए गए उदाहरण में बताया गया है:

    // Google+ Sign-in (old)
    function signinCallback(authResult) {
      if (authResult['status']['signed_in']) {
        // Handle successful sign-in
      } else {
        // Handle sign-in errors
        console.log('Sign-in error: ' + authResult['error']);
      }
    }
    

    // Google Sign-in (new)
    function onSignIn(googleUser) {
      // Handle successful sign-in
    }
    function onSignInFailure() {
      // Handle sign-in errors
    }
    

ये बदलाव, आपके डिफ़ॉल्ट दायरों को profile email openid में अपडेट कर देते हैं. आप getBasicProfile() पर कॉल करके, उपयोगकर्ता की प्रोफ़ाइल की बुनियादी जानकारी पाएं तरीका.

हाइब्रिड सर्वर-साइड फ़्लो को माइग्रेट करना

अगर आपने JavaScript API का इस्तेमाल करके, एक बार इस्तेमाल होने वाला ऑथराइज़ेशन कोड पाया है को अपने सर्वर पर भेजने के लिए, ये बदलाव करें:

  • दायरे को https://www.googleapis.com/auth/plus.login से बदलकर यह करें profile.

  • अपने मौजूदा कॉलबैक के साथ gapi.auth2.grantOfflineAccess() तरीका इस्तेमाल करें फ़ंक्शन का इस्तेमाल करेंगे, जैसा कि नीचे दिया गया उदाहरण देखें:

    <!-- Google+ Sign-in (old) -->
    <div class="g-signin"
      data-scope="https://www.googleapis.com/auth/plus.login"
      data-clientid="YOUR_CLIENT_ID"
      data-redirecturi="postmessage"
      data-accesstype="offline"
      data-callback="signInCallback">
    </div>
    

    // Google Sign-in (new)
    auth2 = gapi.auth2.init({
      client_id: 'YOUR_CLIENT_ID',
      scope: 'profile'
    });
    
    ...
    
    auth2.grantOfflineAccess().then(signInCallback);
    

अगर आपको उपयोगकर्ता के ईमेल का ऐक्सेस भी चाहिए, तो स्कोप पैरामीटर में email जोड़ें.