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

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

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

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

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

คำสำคัญ

ก่อนที่จะอ่านข้อมูลเกี่ยวกับวิธีการทำงานของ GSI โปรดทำความเข้าใจคำศัพท์ต่อไปนี้

  • โทเค็นรหัส Google: การยืนยันที่ลงนามแล้วในข้อมูลประจำตัวของผู้ใช้ที่มีข้อมูลโปรไฟล์ Google พื้นฐานของผู้ใช้ (ชื่อ อีเมล และรูปโปรไฟล์) โทเค็น Google ID คือโทเค็นเว็บ 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"
}
  • ความตั้งใจของตัวช่วยในการลงชื่อเข้าใช้บัญชี: ความตั้งใจของผู้ช่วยที่คุณเรียกใช้เพื่อขอขั้นตอนการลิงก์บัญชีจาก Assistant ดูข้อมูลเพิ่มเติมได้ที่การลงชื่อเข้าใช้บัญชี
    • สตริงบริบท: สตริงที่กำหนดเองที่คุณเพิ่มไปยังเป้าหมายของผู้ช่วยเหลือในการลงชื่อเข้าใช้บัญชี ซึ่งจะบอกผู้ใช้ว่าเหตุใดคุณจึงต้องการให้พวกเขาลิงก์บัญชีของตน

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

ขั้นตอนพื้นฐานของ GSI มีดังนี้

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

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

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

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