ขั้นตอนเพื่อลดผลกระทบจากการเปลี่ยนแปลงขอบเขตต่อผู้ใช้
- หากแอปพลิเคชันของคุณต้องใช้อีเมลของผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์แล้ว และก่อนหน้านี้คุณเคยใช้
profile.emails.read
เพื่อวัตถุประสงค์ดังกล่าว ให้ใช้email
แทน - รับการอนุมัติสำหรับ
profile.emails.read
ด้วยคำขอการยืนยันที่ได้รับอนุมัติ โปรดดูหัวข้อฉันจะส่งแบบฟอร์มเพื่อขอรับการยืนยันได้อย่างไร - เพิกถอนโทเค็นผู้ใช้ก่อนหน้าในขอบเขตที่จะนำออกหรือนำสิทธิ์การเข้าถึงแอปพลิเคชันออกทั้งหมด เช่น ควรเพิกถอนโทเค็นที่มีสิทธิ์เข้าถึง
profile.emails.read
เราขอแนะนำให้ใช้การเพิกถอนขณะที่ผู้ใช้อยู่ในแอปพลิเคชันของคุณ เพื่อให้คุณขอความยินยอมจากผู้ใช้ได้ทันที - แจ้งให้ผู้ใช้ให้ความยินยอมอีกครั้งโดยใช้ขอบเขตใหม่ เช่น
email
โดยไม่ต้องมีprofile.emails.read
- นำขอบเขตที่จะเลิกใช้งานออกจากการกำหนดค่าหน้าจอขอความยินยอม OAuth ของ Google APIs
การเปลี่ยนแปลงที่คุณต้องดำเนินการเพื่อย้ายเว็บไซต์จาก Google+ Sign-In ไปยัง Google Sign-In จะขึ้นอยู่กับกระบวนการ Google+ Sign-In ที่คุณใช้ โดยทั่วไป การย้ายข้อมูลกำหนดให้คุณต้องอัปเดตปุ่มลงชื่อเข้าใช้ ขอบเขตที่ขอ และวิธีการเรียกข้อมูลโปรไฟล์จาก Google
เมื่อคุณอัปเดตปุ่มลงชื่อเข้าใช้ โปรดอย่าอ้างอิงถึง G+ หรือใช้สีแดง ปฏิบัติตามหลักเกณฑ์การสร้างแบรนด์ฉบับปรับปรุงของเรา
แอปพลิเคชันการลงชื่อเข้าใช้ G+ ส่วนใหญ่ขอให้ใช้ขอบเขตร่วมกับขอบเขตดังนี้: plus.login
, plus.me
และ plus.profile.emails.read
คุณจะต้องแมปขอบเขตใหม่ดังนี้
ขอบเขตเดิม | ขอบเขตใหม่ |
---|---|
plus.login |
profile |
plus.me |
openid |
plus.profile.emails.read |
email |
ผู้ติดตั้งใช้งาน Google+ Sign-In หลายรายใช้การทำงานของโค้ด ซึ่งหมายความว่าแอป Android, iOS หรือ JavaScript จะได้รับรหัส OAuth จาก Google และไคลเอ็นต์จะส่งโค้ดดังกล่าวกลับไปยังเซิร์ฟเวอร์ พร้อมด้วยการป้องกันการปลอมแปลงคำขอแบบข้ามเว็บไซต์ จากนั้นเซิร์ฟเวอร์จะตรวจสอบโค้ดและรับโทเค็นเพื่อการเข้าถึงและรีเฟรชเพื่อดึงข้อมูลโปรไฟล์ผู้ใช้จาก people.get
API
ตอนนี้ Google ขอแนะนำให้คุณขอโทเค็นรหัส แล้วส่งโทเค็นรหัสจากไคลเอ็นต์ไปยังเซิร์ฟเวอร์ของคุณ โทเค็นรหัสมีการป้องกันการปลอมแปลงแบบข้ามเว็บไซต์ในตัวและยังยืนยันแบบคงที่ได้ในเซิร์ฟเวอร์ของคุณ ทำให้ไม่ต้องใช้การเรียก API เพิ่มเติมเพื่อรับข้อมูลโปรไฟล์ผู้ใช้จากเซิร์ฟเวอร์ของ Google ทำตามวิธีการเพื่อตรวจสอบโทเค็นรหัสในเซิร์ฟเวอร์ของคุณ
หากยังคงต้องการใช้ขั้นตอนของโค้ดเพื่อรับข้อมูลโปรไฟล์
ก็สามารถทำได้ เมื่อเซิร์ฟเวอร์ของคุณมีโทเค็นเพื่อการเข้าถึงแล้ว คุณจะต้อง
ขอข้อมูลโปรไฟล์ผู้ใช้
จากปลายทาง userinfo
ที่ระบุไว้ในเอกสารการค้นพบของเรา การตอบกลับของ API จะจัดรูปแบบต่างจากการตอบกลับของโปรไฟล์ Google+ คุณจึงต้องอัปเดตการแยกวิเคราะห์เป็นรูปแบบใหม่
ย้ายข้อมูลปุ่มลงชื่อเข้าใช้ HTML
หากคุณใส่ปุ่ม Google+ Sign-In ไว้ในหน้าเว็บโดยการมอบหมายชั้นเรียน 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
คุณสามารถดูข้อมูลโปรไฟล์พื้นฐานของผู้ใช้ เช่น ชื่อ อีเมล และ URL รูปภาพได้ ดังนี้// Google Sign-in (new) function onSignIn(googleUser) { let profile = googleUser.getBasicProfile(); let fullName = profile.getName(); let email = profile.getEmail(); let imageUrl = profile.getImageUrl(); }
ย้ายข้อมูลปุ่มลงชื่อเข้าใช้ที่แสดงผลแบบไดนามิก
หากคุณใส่ปุ่ม Google+ Sign-In ไว้ในหน้าเว็บโดยการโทร 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
ลงในพารามิเตอร์ขอบเขต