ประเภทการลิงก์ OAuth และ Google Sign-In จะเพิ่ม Google Sign-In นอกเหนือจาก OAuth การลิงก์บัญชี ซึ่งทำให้ผู้ใช้ Google สามารถลิงก์ด้วยเสียงได้อย่างราบรื่น ในขณะเดียวกันก็เปิดใช้การลิงก์บัญชีสำหรับผู้ใช้ที่ลงทะเบียนใช้บริการของคุณ ด้วยข้อมูลประจำตัวที่ไม่ใช่ของ Google
การลิงก์ประเภทนี้เริ่มต้นด้วย Google Sign-In ซึ่งช่วยให้คุณตรวจสอบว่า มีข้อมูลโปรไฟล์ Google อยู่ในระบบของคุณ หากข้อมูลของผู้ใช้ ไม่พบในระบบของคุณ ขั้นตอน OAuth มาตรฐานจะเริ่มต้นขึ้น นอกจากนี้ ผู้ใช้ยัง เลือกสร้างบัญชีใหม่ด้วยข้อมูลโปรไฟล์ Google
ในการลิงก์บัญชีด้วย OAuth และ Google Sign-In โปรดทำตามหลักเกณฑ์ทั่วไปต่อไปนี้ ขั้นตอน:
- ขั้นแรก ให้ผู้ใช้ให้ความยินยอมในการเข้าถึงโปรไฟล์ Google
- ใช้ข้อมูลในโปรไฟล์เพื่อระบุตัวผู้ใช้
- หากไม่พบข้อมูลที่ตรงกันสำหรับผู้ใช้ Google ในระบบการตรวจสอบสิทธิ์
ขั้นตอนนี้จะดำเนินการโดยขึ้นอยู่กับว่าคุณกำหนดค่าโปรเจ็กต์ Actions ไว้หรือไม่
ในคอนโซลการดำเนินการเพื่ออนุญาตให้สร้างบัญชีผู้ใช้ผ่านเสียงหรือเฉพาะ
เว็บไซต์ของคุณ
- หากคุณอนุญาตให้สร้างบัญชีผ่านเสียง ให้ตรวจสอบความถูกต้องของบัตรประจำตัว ที่ได้รับจาก Google จากนั้นคุณสามารถสร้างผู้ใช้ตาม ที่อยู่ในโทเค็นรหัส
- หากคุณไม่อนุญาตให้สร้างบัญชีผ่านเสียง ระบบจะโอนผู้ใช้ไปยัง เบราว์เซอร์ที่สามารถโหลดหน้าการให้สิทธิ์และเพิ่มผู้ใช้ให้สมบูรณ์ ขั้นตอนการสร้าง
รองรับการสร้างบัญชีผ่านเสียง
หากคุณอนุญาตให้สร้างบัญชีผู้ใช้ผ่านเสียง Assistant จะถามผู้ใช้ว่า และต้องการทำสิ่งต่อไปนี้
- สร้างบัญชีใหม่ในระบบของคุณโดยใช้ข้อมูลบัญชี Google ของผู้ใช้นั้น หรือ
- ลงชื่อเข้าใช้ระบบการตรวจสอบสิทธิ์ด้วยบัญชีอื่นหากบัญชีมี บัญชีที่ไม่ใช่ของ Google
ขอแนะนำให้อนุญาตให้สร้างบัญชีผ่านเสียงหากต้องการลด อุปสรรคของขั้นตอนการสร้างบัญชี ผู้ใช้เพียงแค่ต้องออกจากเสียงพูด หากต้องการลงชื่อเข้าใช้ด้วยบัญชีที่ไม่ใช่ของ Google ที่มีอยู่
ไม่อนุญาตให้สร้างบัญชีผ่านเสียง
หากคุณไม่อนุญาตให้สร้างบัญชีผู้ใช้ผ่านเสียง Assistant จะเปิด URL ไปยัง เว็บไซต์ที่คุณจัดเตรียมไว้สำหรับการตรวจสอบสิทธิ์ผู้ใช้ หากการโต้ตอบเกิดขึ้น ในอุปกรณ์ที่ไม่มีหน้าจอ Assistant จะนำผู้ใช้ไปยังโทรศัพท์ เพื่อดำเนินการลิงก์บัญชีต่อ
ขอแนะนำให้ไม่อนุญาตให้สร้างในกรณีต่อไปนี้
คุณไม่สามารถอนุญาตให้ผู้ใช้ที่มีบัญชีที่ไม่ใช่ของ Google สร้างบัญชีใหม่ บัญชีผู้ใช้ของคุณ และต้องการให้เชื่อมโยงกับบัญชีผู้ใช้ของตนใน ระบบการตรวจสอบสิทธิ์แทน ตัวอย่างเช่น หากคุณนำเสนอโปรแกรมสะสมคะแนน คุณจะ คุณอาจต้องตรวจสอบว่าผู้ใช้ไม่ได้สูญเสียคะแนนที่สะสมไว้ใน บัญชีที่มีอยู่
คุณต้องควบคุมขั้นตอนการสร้างบัญชีอย่างเต็มรูปแบบ ตัวอย่างเช่น คุณสามารถ ไม่อนุญาตให้สร้างหากคุณต้องการแสดงข้อกำหนดในการให้บริการแก่ผู้ใช้ในระหว่าง การสร้างบัญชี
ใช้การลิงก์บัญชี OAuth กับบัญชี Google Sign-In
บัญชีลิงก์กับขั้นตอน OAuth 2.0 ตามมาตรฐานอุตสาหกรรมแล้ว Actions on Google รองรับขั้นตอนของรหัสโดยนัยและรหัสการให้สิทธิ์
ในขั้นตอนการเขียนโค้ดแบบโดยนัย Google จะเปิดปลายทางการให้สิทธิ์ในเบราว์เซอร์ของผู้ใช้ เมื่อลงชื่อเข้าใช้สําเร็จ คุณจะส่งคืนโทเค็นเพื่อการเข้าถึงที่ใช้ได้นานแก่ Google ตอนนี้โทเค็นเพื่อการเข้าถึงนี้รวมอยู่ในคําขอทุกรายการที่ส่งจาก Assistant ไปยังการดําเนินการของคุณแล้ว
ในกระบวนการรหัสการให้สิทธิ์ คุณต้องมีปลายทาง 2 จุด ได้แก่
- ปลายทางการให้สิทธิ์ ซึ่งมีหน้าที่นําเสนอ UI การลงชื่อเข้าใช้แก่ผู้ใช้ที่ไม่ได้ลงชื่อเข้าใช้ และยินยอมให้มีการเข้าถึงการเข้าถึงที่ขอในรูปของรหัสการให้สิทธิ์ระยะสั้น
- ปลายทางของการแลกเปลี่ยนโทเค็นที่มีหน้าที่รับผิดชอบการแลกเปลี่ยน 2 ประเภท ได้แก่
- แลกเปลี่ยนรหัสการให้สิทธิ์สําหรับโทเค็นการรีเฟรชที่ใช้ได้นานและโทเค็นเพื่อการเข้าถึงที่ใช้ได้นาน การแลกเปลี่ยนนี้จะเกิดขึ้นเมื่อผู้ใช้เข้าสู่ กระบวนการเชื่อมโยงบัญชี
- แลกเปลี่ยนโทเค็นการรีเฟรชที่ใช้ได้นานกับโทเค็นเพื่อการเข้าถึงที่ใช้ได้ในระยะสั้น Exchange นี้จะเกิดขึ้นเมื่อ Google ต้องการโทเค็นเพื่อการเข้าถึงใหม่เนื่องจากโทเค็นหมดอายุ
แม้ว่าขั้นตอนการใช้รหัสโดยนัยจะง่ายกว่า Google ขอแนะนําว่าโทเค็นเพื่อการเข้าถึงที่ออกโดยใช้โฟลว์โดยนัยไม่มีวันหมดอายุ เนื่องจากการใช้การหมดอายุของโทเค็นด้วยขั้นตอนโดยนัยบังคับให้ผู้ใช้ลิงก์บัญชีอีกครั้ง หากคุณต้องการใช้การหมดอายุของโทเค็นด้วยเหตุผลด้านความปลอดภัย คุณควรพิจารณาการใช้ขั้นตอนการตรวจสอบสิทธิ์แทน
กำหนดค่าโปรเจ็กต์
วิธีกำหนดค่าโปรเจ็กต์ให้ใช้บัญชี OAuth และ Google Sign-In การลิงก์ ให้ทำตามขั้นตอนต่อไปนี้
- เปิดคอนโซล Actions และเลือกโปรเจ็กต์ที่ต้องการใช้
- คลิกแท็บพัฒนาแล้วเลือกการลิงก์บัญชี
- เปิดใช้สวิตช์ข้างการลิงก์บัญชี
- ในส่วนการสร้างบัญชี ให้เลือกใช่
ในส่วนประเภทการลิงก์ ให้เลือก OAuth และ Google Sign In และ Implicit
ในข้อมูลไคลเอ็นต์ ให้ทำดังนี้
- กำหนดค่าให้กับรหัสไคลเอ็นต์ที่ออกโดย Actions to Google เพื่อระบุ คำขอที่มาจาก Google
- แทรก URL สำหรับปลายทาง Authorization และ Token Exchange
คลิกบันทึก
ใช้เซิร์ฟเวอร์ OAuth
บริการของคุณจะให้สิทธิ์เพื่อรองรับขั้นตอนโดยนัยของ OAuth 2.0 ปลายทางที่พร้อมใช้งานผ่าน HTTPS ปลายทางนี้มีหน้าที่ในการตรวจสอบสิทธิ์และ ได้รับความยินยอมจากผู้ใช้ในการเข้าถึงข้อมูล ปลายทางการให้สิทธิ์ แสดง UI การลงชื่อเข้าใช้แก่ผู้ใช้ที่ยังไม่ได้ลงชื่อเข้าใช้และบันทึกไว้ ความยินยอมต่อการเข้าถึงที่ขอ
เมื่อการดำเนินการของคุณจำเป็นต้องเรียกใช้ API ที่ได้รับอนุญาตของบริการ Google จะใช้ ปลายทางนี้เพื่อขอสิทธิ์จากผู้ใช้เพื่อเรียกใช้ API เหล่านี้ใน แทน
เซสชันโฟลว์แบบโดยนัยของ OAuth 2.0 ทั่วไปที่ Google เป็นผู้เริ่มต้นจะมี ขั้นตอนดังต่อไปนี้
- Google จะเปิดปลายทางการให้สิทธิ์ในเบราว์เซอร์ของผู้ใช้ ผู้ใช้ ลงชื่อเข้าใช้หากยังไม่ได้ลงชื่อเข้าใช้ และให้สิทธิ์แก่ Google ในการเข้าถึง ข้อมูลของตนเองกับ API ของคุณ หากผู้ใช้ยังไม่ได้ให้สิทธิ์
- บริการของคุณจะสร้างโทเค็นเพื่อการเข้าถึงและส่งไปยัง Google โดยการเปลี่ยนเส้นทางเบราว์เซอร์ของผู้ใช้กลับไปยัง Google ด้วยโทเค็นเพื่อการเข้าถึง ที่แนบมากับคำขอ
- Google จะเรียกใช้ API ของบริการ และแนบโทเค็นเพื่อการเข้าถึงกับ คำขอแต่ละรายการ บริการของคุณยืนยันว่าโทเค็นเพื่อการเข้าถึงให้สิทธิ์ Google การอนุญาตให้เข้าถึง API จากนั้นจึงเรียก API
จัดการคำขอการให้สิทธิ์
เมื่อการดำเนินการของคุณต้องลิงก์บัญชีผ่านขั้นตอนโดยนัย OAuth2 Google จะส่งผู้ใช้ไปยังปลายทางการให้สิทธิ์พร้อมคำขอที่มี พารามิเตอร์ต่อไปนี้
| พารามิเตอร์ปลายทางการให้สิทธิ์ | |
|---|---|
client_id |
รหัสไคลเอ็นต์ที่คุณกำหนดให้กับ Google |
redirect_uri |
URL ที่คุณส่งการตอบกลับคำขอนี้ |
state |
มูลค่าการทำบัญชีที่ส่งกลับไปยัง Google ไม่เปลี่ยนแปลงใน URI การเปลี่ยนเส้นทาง |
response_type |
ประเภทของค่าที่จะแสดงในคำตอบ สำหรับ OAuth 2.0 โดยปริยาย
ประเภทการตอบกลับจะเป็น token เสมอ |
ตัวอย่างเช่น หากปลายทางการให้สิทธิ์อยู่ที่ https://myservice.example.com/auth
คำขออาจมีลักษณะดังนี้
GET https://myservice.example.com/auth?client_id=GOOGLE_CLIENT_ID&redirect_uri=REDIRECT_URI&state=STATE_STRING&response_type=token
สำหรับปลายทางการให้สิทธิ์ในการจัดการคำขอลงชื่อเข้าใช้ ให้ทำตามขั้นตอนต่อไปนี้
ยืนยันค่า
client_idและredirect_uriเพื่อ ป้องกันการให้สิทธิ์เข้าถึงแอปไคลเอ็นต์ที่ไม่ได้ตั้งใจหรือกำหนดค่าไม่ถูกต้อง- ยืนยันว่า
client_idตรงกับรหัสไคลเอ็นต์ที่คุณ ที่มอบหมายให้กับ Google - ยืนยันว่า URL ที่ระบุโดย
redirect_uriจะมีรูปแบบต่อไปนี้ YOUR_PROJECT_ID คือรหัสในหน้าการตั้งค่าโปรเจ็กต์ ของคอนโซลการดำเนินการhttps://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID
- ยืนยันว่า
ตรวจสอบว่าผู้ใช้ลงชื่อเข้าใช้บริการของคุณหรือไม่ หากผู้ใช้ไม่ได้เซ็น ดำเนินการตามขั้นตอนการลงชื่อเข้าใช้หรือลงชื่อสมัครใช้บริการของคุณ
สร้างโทเค็นเพื่อการเข้าถึงที่ Google จะใช้เพื่อเข้าถึง API ของคุณ โทเค็นเพื่อการเข้าถึงสามารถเป็นค่าสตริงใดก็ได้ แต่จะต้องแสดงถึง ผู้ใช้และไคลเอ็นต์ที่ใช้โทเค็นและต้องคาดเดาไม่ได้
ส่งการตอบกลับ HTTP ที่เปลี่ยนเส้นทางเบราว์เซอร์ของผู้ใช้ไปยัง URL ที่ระบุโดยพารามิเตอร์
redirect_uriรวม พารามิเตอร์ต่อไปนี้ในส่วนย่อยของ URLaccess_token: โทเค็นเพื่อการเข้าถึงที่คุณเพิ่งสร้างtoken_type: สตริงbearerstate: ค่าสถานะที่ไม่มีการแก้ไขจากค่าเดิม คำขอ ตัวอย่างของ URL ที่ได้มีดังนี้https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID#access_token=ACCESS_TOKEN&token_type=bearer&state=STATE_STRING
เครื่องจัดการการเปลี่ยนเส้นทาง OAuth 2.0 ของ Google จะได้รับโทเค็นเพื่อการเข้าถึงและยืนยัน
ค่า state ยังไม่มีการเปลี่ยนแปลง หลังจากที่ Google ได้รับ
โทเค็นเพื่อการเข้าถึงสำหรับบริการของคุณ Google จะแนบโทเค็นไปกับการเรียกครั้งต่อๆ ไป
ไปยังการดำเนินการของคุณได้โดยเป็นส่วนหนึ่งของ AppRequest
จัดการการลิงก์อัตโนมัติ
หลังจากที่ผู้ใช้ให้ความยินยอมแก่การดำเนินการของคุณเพื่อเข้าถึงโปรไฟล์ Google แล้ว Google ส่งคำขอที่มีการยืนยันข้อมูลประจำตัวของผู้ใช้ Google ที่ลงชื่อ การยืนยันประกอบด้วยข้อมูลที่มีรหัสบัญชี Google, ชื่อ, และอีเมล ปลายทางการแลกเปลี่ยนโทเค็นที่กำหนดค่าไว้สำหรับแฮนเดิลโปรเจ็กต์ คำขอนั้น
หากมีบัญชี Google ที่เกี่ยวข้องอยู่ในระบบการตรวจสอบสิทธิ์แล้ว
ปลายทางการแลกเปลี่ยนโทเค็นจะแสดงโทเค็นสำหรับผู้ใช้ หากบัญชี Google ไม่
ตรงกับผู้ใช้ที่มีอยู่ ปลายทางการแลกเปลี่ยนโทเค็นแสดงข้อผิดพลาด user_not_found
คำขอมีแบบฟอร์มต่อไปนี้
POST /token HTTP/1.1 Host: oauth2.example.com Content-Type: application/x-www-form-urlencoded grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&intent=get&assertion=JWT&consent_code=CONSENT_CODE&scope=SCOPES
ปลายทางการแลกเปลี่ยนโทเค็นต้องจัดการพารามิเตอร์ต่อไปนี้ได้
| พารามิเตอร์ปลายทางของโทเค็น | |
|---|---|
grant_type |
ประเภทของโทเค็นที่แลกเปลี่ยน สำหรับคำขอเหล่านี้ พารามิเตอร์นี้
มีค่า urn:ietf:params:oauth:grant-type:jwt-bearer |
intent |
สำหรับคำขอเหล่านี้ ค่าของพารามิเตอร์นี้คือ "get" |
assertion |
JSON Web Token (JWT) ที่แสดงการยืนยันของ Google ข้อมูลประจำตัวของผู้ใช้ JWT มีข้อมูลที่มีประวัติของผู้ใช้ รหัสบัญชี ชื่อ และอีเมล |
consent_code |
ไม่บังคับ: หากมี รหัสแบบใช้ครั้งเดียวซึ่งระบุว่าพารามิเตอร์ ผู้ใช้ได้ให้ความยินยอมให้การดำเนินการของคุณเข้าถึงขอบเขตที่ระบุ |
scope |
ไม่บังคับ: ขอบเขตที่คุณกำหนดค่าให้ Google ส่งคำขอจากผู้ใช้ |
เมื่อปลายทางการแลกเปลี่ยนโทเค็นได้รับคำขอลิงก์ ระบบควรทำ ดังต่อไปนี้:
ตรวจสอบและถอดรหัสการยืนยัน JWT
คุณตรวจสอบและถอดรหัสการยืนยัน JWT ได้โดยใช้ไลบรารีการถอดรหัส JWT สำหรับภาษาของคุณ ใช้คีย์สาธารณะของ Google (มีให้ใช้งานใน JWK หรือ PEM) เพื่อยืนยันโทเค็น ลายเซ็น
เมื่อถอดรหัสแล้ว การยืนยัน JWT จะมีลักษณะดังตัวอย่างต่อไปนี้
{ "sub": 1234567890, // The unique ID of the user's Google Account "iss": "https://accounts.google.com", // The assertion's issuer "aud": "123-abc.apps.googleusercontent.com", // Your server's client ID "iat": 233366400, // Unix timestamp of the assertion's creation time "exp": 233370000, // Unix timestamp of the assertion's expiration time "name": "Jan Jansen", "given_name": "Jan", "family_name": "Jansen", "email": "jan@gmail.com", // If present, the user's email address "locale": "en_US" }
นอกจากการยืนยันลายเซ็นของโทเค็นแล้ว ให้ตรวจสอบว่าผู้ออกการยืนยัน
(ช่อง iss) คือ https://accounts.google.com และกลุ่มเป้าหมาย (ช่อง aud)
เป็นรหัสไคลเอ็นต์ที่กำหนดให้กับการดำเนินการของคุณ
ตรวจสอบว่ามีบัญชี Google อยู่ในระบบการตรวจสอบสิทธิ์ของคุณแล้วหรือยัง
ตรวจสอบว่าเงื่อนไขใดเงื่อนไขหนึ่งต่อไปนี้เป็นจริง
- รหัสบัญชี Google ที่พบในช่อง
subของการยืนยันนั้นอยู่ในฐานข้อมูลผู้ใช้ของคุณ - อีเมลในการยืนยันตรงกับผู้ใช้ในฐานข้อมูลผู้ใช้
หากเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง แสดงว่าผู้ใช้ได้ลงชื่อสมัครใช้แล้ว และคุณสามารถออก โทเค็นเพื่อการเข้าถึง
หากทั้งรหัสบัญชี Google และอีเมลที่ระบุในการยืนยัน
ตรงกับผู้ใช้ในฐานข้อมูลของคุณ แต่ผู้ใช้ยังไม่ได้ลงชื่อสมัครใช้ ในกรณีนี้
ปลายทางการแลกเปลี่ยนโทเค็นควรตอบกลับพร้อมข้อผิดพลาด HTTP 401 ซึ่งระบุ error=user_not_found
ดังตัวอย่างต่อไปนี้
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
{
"error":"user_not_found",
}
user_not_found ทาง Google
เรียกปลายทางการแลกเปลี่ยนโทเค็นด้วยค่าของพารามิเตอร์ intent
ตั้งค่าเป็น สร้าง และส่งโทเค็นรหัสที่มีข้อมูลโปรไฟล์ของผู้ใช้
พร้อมกับคำขอ
通过 Google 登录功能处理账号创建
当用户需要在您的服务中创建账号时,Google 会
向令牌交换端点发送的请求
intent=create,如以下示例所示:
POST /token HTTP/1.1 Host: oauth2.example.com Content-Type: application/x-www-form-urlencoded response_type=token&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&scope=SCOPES&intent=create&consent_code=CONSENT_CODE&assertion=JWT[&NEW_ACCOUNT_INFO]
assertion 参数包含 JSON Web 令牌 (JWT),可提供
Google 用户的身份的已签名断言。JWT 包含
其中包含用户的 Google 账号 ID、姓名和电子邮件地址
为您的服务创建一个新账号。
如需响应账号创建请求,您的令牌交换端点必须执行以下操作 以下:
ตรวจสอบและถอดรหัสการยืนยัน JWT
คุณตรวจสอบและถอดรหัสการยืนยัน JWT ได้โดยใช้ไลบรารีการถอดรหัส JWT สำหรับภาษาของคุณ ใช้คีย์สาธารณะของ Google (มีให้ใช้งานใน JWK หรือ PEM) เพื่อยืนยันโทเค็น ลายเซ็น
เมื่อถอดรหัสแล้ว การยืนยัน JWT จะมีลักษณะดังตัวอย่างต่อไปนี้
{ "sub": 1234567890, // The unique ID of the user's Google Account "iss": "https://accounts.google.com", // The assertion's issuer "aud": "123-abc.apps.googleusercontent.com", // Your server's client ID "iat": 233366400, // Unix timestamp of the assertion's creation time "exp": 233370000, // Unix timestamp of the assertion's expiration time "name": "Jan Jansen", "given_name": "Jan", "family_name": "Jansen", "email": "jan@gmail.com", // If present, the user's email address "locale": "en_US" }
นอกจากการยืนยันลายเซ็นของโทเค็นแล้ว ให้ตรวจสอบว่าผู้ออกการยืนยัน
(ช่อง iss) คือ https://accounts.google.com และกลุ่มเป้าหมาย (ช่อง aud)
เป็นรหัสไคลเอ็นต์ที่กำหนดให้กับการดำเนินการของคุณ
验证用户信息并创建新账号
请检查以下任一条件是否成立:
- Google 账号 ID 可在断言的
sub字段中找到,也可位于您的用户数据库中。 - 断言中的电子邮件地址与用户数据库中的用户匹配。
如果满足上述任一条件,则提示用户将其现有账号关联
通过使用 HTTP 401 错误响应请求
error=linking_error,并将用户的电子邮件地址为 login_hint,如
示例:
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
{
"error":"linking_error",
"login_hint":"foo@bar.com"
}
如果以上两个条件都不满足,请使用相应信息创建一个新的用户账号 。新账号通常不会设置密码。时间是 建议您将 Google 登录功能添加到其他平台,以便用户能够 在您的应用的各个界面上通过 Google 投放广告。或者,您也可以 通过电子邮件向用户发送链接,启动密码恢复流程,以便用户设置 密码,以便在其他平台上登录。
创建完成后,发出一个访问令牌 并在 HTTPS 响应的正文,如以下示例所示:
{ "token_type": "Bearer", "access_token": "ACCESS_TOKEN", "expires_in": SECONDS_TO_EXPIRATION }
เริ่มขั้นตอนการตรวจสอบสิทธิ์
ใช้จุดประสงค์ของตัวช่วยในการลงชื่อเข้าใช้บัญชี เพื่อเริ่มขั้นตอนการตรวจสอบสิทธิ์
const app = dialogflow({ // REPLACE THE PLACEHOLDER WITH THE CLIENT_ID OF YOUR ACTIONS PROJECT clientId: CLIENT_ID, }) // Intent that starts the account linking flow. app.intent('Start Signin', conv => { conv.ask(new SignIn('To get your account details')) })
private String clientId = "<your_client_id>"; @ForIntent("Start Signin") public ActionResponse text(ActionRequest request) { ResponseBuilder rb = getResponseBuilder(request); return rb.add(new SignIn().setContext("To get your account details")).build(); }
const app = actionssdk({ clientId: CLIENT_ID, }) app.intent('Start Signin', conv => { conv.ask(new SignIn('To get your account details')) })
private String clientId = "<your_client_id>"; @ForIntent("actions.intent.TEXT") public ActionResponse text(ActionRequest request) { ResponseBuilder rb = getResponseBuilder(request); return rb.add(new SignIn().setContext("To get your account details")).build(); }
จัดการคำขอเข้าถึงข้อมูล
หากคําขอ Assistant มีโทเค็นเพื่อการเข้าถึง ตรวจสอบก่อนว่าโทเค็นเพื่อการเข้าถึงถูกต้องและยังไม่หมดอายุ จากนั้นจึงดึงข้อมูลจาก ฐานข้อมูลบัญชีผู้ใช้ที่เป็นบัญชีผู้ใช้ที่เชื่อมโยงกับโทเค็น