ประเภทการลิงก์ 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
Handle automatic linking
After the user gives your Action consent to access their Google profile, Google sends a request that contains a signed assertion of the Google user's identity. The assertion contains information that includes the user's Google Account ID, name, and email address. The token exchange endpoint configured for your project handles that request.
If the corresponding Google account is already present in your authentication system,
your token exchange endpoint returns a token for the user. If the Google account doesn't
match an existing user, your token exchange endpoint returns a user_not_found error.
The request has the following form:
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
Your token exchange endpoint must be able to handle the following parameters:
| Token endpoint parameters | |
|---|---|
grant_type |
The type of token being exchanged. For these requests, this
parameter has the value urn:ietf:params:oauth:grant-type:jwt-bearer. |
intent |
For these requests, the value of this parameter is `get`. |
assertion |
A JSON Web Token (JWT) that provides a signed assertion of the Google user's identity. The JWT contains information that includes the user's Google Account ID, name, and email address. |
consent_code |
Optional: When present, a one-time code that indicates that the user has granted consent for your Action to access the specified scopes. |
scope |
Optional: Any scopes you configured Google to request from users. |
When your token exchange endpoint receives the linking request, it should do the following:
ตรวจสอบและถอดรหัสการยืนยัน 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)
เป็นรหัสไคลเอ็นต์ที่กำหนดให้กับการดำเนินการของคุณ
Check if the Google account is already present in your authentication system
Check whether either of the following conditions are true:
- The Google Account ID, found in the assertion's
subfield, is in your user database. - The email address in the assertion matches a user in your user database.
If either condition is true, the user has already signed up and you can issue an access token.
If neither the Google Account ID nor the email address specified in the assertion
matches a user in your database, the user hasn't signed up yet. In this case, your
token exchange endpoint should reply with a HTTP 401 error, that specifies error=user_not_found,
as in the following example:
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
{
"error":"user_not_found",
}
user_not_found error, Google
calls your token exchange endpoint with the value of the intent parameter
set to create and sending an ID token that contains the user's profile information
with the request.
จัดการการสร้างบัญชีผ่าน Google Sign-In
เมื่อผู้ใช้ต้องการสร้างบัญชีในบริการของคุณ 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 Token (JWT) ที่
การยืนยันข้อมูลประจำตัวของผู้ใช้ Google JWT มีข้อมูล
ที่มีรหัสบัญชี ชื่อ และอีเมลของผู้ใช้ 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 ที่พบในช่อง
subของการยืนยันนั้นอยู่ในฐานข้อมูลผู้ใช้ของคุณ - อีเมลในการยืนยันตรงกับผู้ใช้ในฐานข้อมูลผู้ใช้
หากเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง แจ้งให้ผู้ใช้ลิงก์บัญชีที่มีอยู่กับ
บัญชี Google ของตนโดยการตอบกลับคำขอด้วยข้อผิดพลาด 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"
}
หากไม่มีเงื่อนไขใดเป็นจริง ให้สร้างบัญชีผู้ใช้ใหม่โดยใช้ข้อมูล ที่ให้ไว้ใน JWT โดยทั่วไป บัญชีใหม่จะไม่ตั้งรหัสผ่าน ใช่เลย ขอแนะนำให้คุณเพิ่ม Google Sign-In ลงในแพลตฟอร์มอื่นๆ เพื่อให้ผู้ใช้ ผ่าน Google ในแพลตฟอร์มต่างๆ ของแอปพลิเคชัน อีกวิธีหนึ่งคือ ส่งอีเมลลิงก์ที่เริ่มต้นกระบวนการกู้คืนรหัสผ่านให้กับผู้ใช้ เพื่อให้ผู้ใช้สามารถตั้งค่า รหัสผ่านสำหรับการลงชื่อเข้าใช้ในแพลตฟอร์มอื่น
เมื่อสร้างเสร็จแล้ว ให้ออกโทเค็นเพื่อการเข้าถึง จากนั้นแสดงผลค่าในออบเจ็กต์ JSON ใน ส่วนเนื้อหาของการตอบกลับ 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 มีโทเค็นเพื่อการเข้าถึง ตรวจสอบก่อนว่าโทเค็นเพื่อการเข้าถึงถูกต้องและยังไม่หมดอายุ จากนั้นจึงดึงข้อมูลจาก ฐานข้อมูลบัญชีผู้ใช้ที่เป็นบัญชีผู้ใช้ที่เชื่อมโยงกับโทเค็น