คู่มือแนวคิดเกี่ยวกับ Google Sign-In (Dialogflow)

Google Sign-In (GSI) สำหรับ Assistant ช่วยให้การลิงก์ราบรื่นที่สุด สำหรับผู้ใช้ และเป็นขั้นตอนที่นักพัฒนาซอฟต์แวร์สามารถนำไปใช้ได้ง่ายที่สุด หากใช้ GSI การดำเนินการของคุณจะขอสิทธิ์เข้าถึงโปรไฟล์ Google ของผู้ใช้ได้ในระหว่าง การสนทนา และหากผู้ใช้ให้ความยินยอม จะได้รับชื่อ ที่อยู่อีเมล และรูปโปรไฟล์ การดำเนินการของคุณจะใช้ข้อมูลนี้เพื่อตรวจสอบว่า มีผู้ใช้บัญชี Google ในระบบของคุณ หากไม่ การดำเนินการจะถามผู้ใช้ว่า พวกเขาต้องการสร้างบัญชีใหม่ในระบบของคุณโดยอิงตามบัญชี ข้อมูลโปรไฟล์

GSI เป็นโซลูชันการลิงก์บัญชีที่แนะนำ หากเป็นไปตามเงื่อนไขข้อใดข้อหนึ่งต่อไปนี้

  • คุณยังไม่ได้ใช้ระบบการตรวจสอบสิทธิ์ และ/หรือคุณต้อง เพื่อให้มีบัญชี Google ตัวอย่างเช่น หากการดำเนินการของคุณเจาะจง ที่กำหนดเป้าหมายไปยัง Assistant คุณจะคาดหวังได้ว่า ผู้ใช้ทั้งหมดของคุณจะมี บัญชี
  • คุณมีระบบการตรวจสอบสิทธิ์อยู่แล้ว และต้องการลิงก์เฉพาะผู้ใช้ที่ ลงชื่อเข้าใช้ระบบของคุณโดยใช้บัญชี Google ของเขา

หากต้องการยืนยันว่า GSI เป็นโซลูชันที่เหมาะกับคุณ โปรดดู หน้าเลือกประเภทการลิงก์บัญชี

คำสำคัญ

ก่อนอ่านวิธีการทำงานของ GSI ให้ทำความคุ้นเคยกับคำต่อไปนี้

  • โทเค็นรหัส Google: การยืนยันที่ลงนามสำหรับข้อมูลประจำตัวของผู้ใช้ที่มี ข้อมูลโปรไฟล์ Google พื้นฐานของผู้ใช้ (ชื่อ ที่อยู่อีเมล และ รูปโปรไฟล์) โทเค็นรหัส Google คือ เว็บโทเค็น JSON (JWT)

    ต่อไปนี้เป็นตัวอย่างของโทเค็นที่ถอดรหัส

{
  "sub": 1234567890,        // The unique ID of the user's Google Account
  "iss": "https://accounts.google.com",        // The token's issuer
  "aud": "123-abc.apps.googleusercontent.com", // Client ID assigned to your Actions project
  "iat": 233366400,         // Unix timestamp of the token's creation time
  "exp": 233370000,         // Unix timestamp of the token'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"
}
  • จุดประสงค์ของตัวช่วยในการลงชื่อเข้าใช้บัญชี: Intent ที่เป็นตัวช่วยที่คุณโทรหา ขอขั้นตอนการลิงก์บัญชีจาก Assistant นะ สำหรับข้อมูลเพิ่มเติม ให้ดูที่การลงชื่อเข้าใช้บัญชี
    • สตริงบริบท: สตริงที่กำหนดเองที่คุณเพิ่มในบัญชี ความตั้งใจของตัวช่วยในการลงชื่อเข้าใช้ที่บอกผู้ใช้ว่าทำไมคุณจึงต้องลิงก์ บัญชีของตนได้

วิธีการทำงาน

ขั้นตอนพื้นฐานสำหรับ GSI มีดังนี้

  1. การดำเนินการของคุณขอความยินยอมจากผู้ใช้เพื่อเข้าถึงโปรไฟล์ Google
  2. หลังจากผู้ใช้ให้ความยินยอม การดำเนินการของคุณจะได้รับโทเค็น Google ID ที่ มีข้อมูลโปรไฟล์ Google ของผู้ใช้
  3. ตรวจสอบและถอดรหัสโทเค็นเพื่ออ่านเนื้อหาโปรไฟล์ หากคุณใช้แท็ก ไลบรารีของไคลเอ็นต์ Actions on Google สำหรับ Node.js หรือไลบรารีไคลเอ็นต์ Java โมเดลจะตรวจสอบและถอดรหัสโทเค็นให้คุณ
  4. การดำเนินการของคุณใช้โทเค็นนี้เพื่อตรวจสอบว่าโปรไฟล์ Google ของผู้ใช้หรือไม่ ข้อมูลที่มีอยู่ในระบบของคุณ

    1. หากมี แสดงว่าผู้ใช้ได้ลงชื่อเข้าใช้ระบบของคุณด้วย บัญชี Google ผู้ใช้สามารถสนทนาต่อกับ Assistant ที่มีข้อมูลประจำตัวที่ลิงก์กับบัญชี Google
    2. หากไม่ได้เปิดใช้ ผู้ใช้สามารถสร้างบัญชีใหม่ในระบบโดยใช้ ข้อมูลที่อยู่ในโทเค็น Google ID จากนั้นผู้ใช้สามารถ สนทนาต่อกับ Assistant โดยลิงก์บัญชีใหม่ไว้

ขั้นตอนการลงชื่อเข้าใช้ Google

ส่วนนี้จะอธิบายขั้นตอนต่างๆ ที่อาจเกิดขึ้นกับ Google Sign-In

ขั้นตอนที่ 1: มีข้อมูลของผู้ใช้อยู่ในระบบของคุณ

แผนภาพต่อไปนี้จะแสดงขั้นตอนตั้งแต่ต้นจนจบที่เกิดขึ้นกับ GSI เมื่อ มีข้อมูลของผู้ใช้อยู่ในระบบของคุณแล้ว:

ในกรณีนี้ คุณจะเรียกใช้ Intent ตัวช่วยของ actions.intent.SIGN_IN ด้วยแอตทริบิวต์ สตริงบริบทที่คุณปรับแต่ง Intent นี้จะขอสิทธิ์จากผู้ใช้ในการ เข้าถึงข้อมูลโปรไฟล์ Google ของตนได้

หลังจากผู้ใช้ให้ความยินยอมแล้ว Assistant จะส่งคำขอที่มี ข้อมูลโปรไฟล์ของ user@gmail.com ในกรณีนี้ ข้อมูล ที่อยู่ในโทเค็นรหัส Google สำหรับ user@gmail.com ตรงกับบัญชีใน ระบบของคุณ ดังนั้นข้อมูลประจำตัวของผู้ใช้ในการดำเนินการจะลิงก์โดยอัตโนมัติ กับบัญชีนั้น จากนั้นเว็บฮุคจะอ่านคำสั่งซื้อตามปกติของผู้ใช้จาก ฐานข้อมูลและดำเนินการตอบสนอง

กระบวนการที่ 2: ข้อมูลผู้ใช้ไม่มีอยู่ในระบบของคุณ

แผนภาพต่อไปนี้จะแสดงขั้นตอนตั้งแต่ต้นจนจบที่เกิดขึ้นกับ GSI เมื่อ ข้อมูลของผู้ใช้ไม่มีอยู่ในระบบของคุณ:

ในกรณีนี้ ข้อมูลที่อยู่ในโทเค็น Google ID สำหรับ user@gmail.com ไม่ตรงกับบัญชีในระบบของคุณ ดังนั้น Assistant ถามผู้ใช้ว่าต้องการสร้างบัญชีใหม่หรือไม่ ผู้ใช้ดำเนินการต่อไปนี้ได้ กระบวนการสร้างบัญชีโดยใช้เสียงแทนการโอนไปยัง อุปกรณ์ที่ผ่านการคัดกรอง

เมื่อผู้ใช้ตกลงที่จะสร้างบัญชี บริการของคุณจะใช้ข้อมูล ในโทเค็นรหัส (ชื่อและที่อยู่อีเมลของผู้ใช้) เพื่อสร้างบัญชีสำหรับ ผู้ใช้รายนั้น เมื่อสร้างบัญชีแล้ว ข้อมูลประจำตัวของผู้ใช้ในการดำเนินการของคุณ จะลิงก์กับบัญชี Google ใหม่ของตน

ในกรณีนี้ ผู้ใช้ไม่มีคำสั่งซื้อตามปกติเนื่องจากเพิ่งเคยใช้ บริการ ดังนั้นการดำเนินการของคุณจะถามถึงสิ่งที่ต้องการสั่งซื้อ คุณ นอกจากนี้ ยังถามผู้ใช้ได้ว่าต้องการตั้งค่าคำสั่งซื้อล่าสุด เป็นคำสั่งซื้อตามปกติ