उपयोगकर्ताओं पर दायरे में होने वाले बदलावों के असर को कम करने का तरीका
- अगर आपके ऐप्लिकेशन में किसी ऐसे उपयोगकर्ता के ईमेल पते की ज़रूरत है जिसकी पुष्टि हो चुकी है और आपने इस काम के लिए पहले
profile.emails.read
का इस्तेमाल किया था, तो इसके बजायemail
का इस्तेमाल करें. - मंज़ूरी पा चुके पुष्टि के अनुरोध के साथ
profile.emails.read
के लिए मंज़ूरी पाएं. मैं पुष्टि के लिए कैसे सबमिट करूं? लेख पढ़ें - पिछले उपयोगकर्ता टोकन को उस दायरे से निरस्त करें जिसे हटाया जाना है या ऐप्लिकेशन का ऐक्सेस पूरी तरह से हटाएं. उदाहरण के लिए,
profile.emails.read
ऐक्सेस वाले टोकन को रद्द किया जाना चाहिए. हमारा सुझाव है कि जब आपके उपयोगकर्ता आपके ऐप्लिकेशन का इस्तेमाल करें, तब आप सहमति रद्द कर दें, ताकि आपको तुरंत उपयोगकर्ता की सहमति मिल सके. - अपने उपयोगकर्ताओं से कहें कि वे
profile.emails.read
के बिना, नए दायरे, जैसे किemail
के लिए फिर से सहमति दें. - उस दायरे को हटाएं जिसे 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
जोड़ें.