Recall API ช่วยให้เกมจัดการลิงก์ระหว่างผู้ใช้บริการเกมของ Google Play (PGS) กับบัญชีในเกมได้โดยจัดเก็บโทเค็นการเรียกคืนไว้ในเซิร์ฟเวอร์ของ Google ต่อไปนี้เป็นตัวอย่างสถานการณ์ที่อาจใช้ Recall API
ผู้ใช้กำลังเล่นเกมที่นักพัฒนาแอปมีระบบข้อมูลประจำตัวเพื่อติดตามความคืบหน้าของผู้ใช้ และใช้ PGS ควบคู่ไปกับวิธีการตรวจสอบสิทธิ์อื่นๆ เพื่อเข้าสู่ระบบผู้ใช้ในเกม ในตัวอย่างนี้ ผู้ใช้เข้าสู่ระบบบัญชี PGS Laura และสร้างบัญชีในเกมด้วยระบบการระบุตัวตนของนักพัฒนาแอปชื่อ Racer94 ขณะที่ผู้ใช้เล่นเกม เซิร์ฟเวอร์เกมของนักพัฒนาแอปจะซิงค์ความคืบหน้าของผู้ใช้
นอกจากนี้ นักพัฒนาแอปจะบันทึกโทเค็นการเรียกคืนไว้กับ Google ซึ่งสอดคล้องกับบัญชีในเกมของผู้ใช้ Google จะจัดเก็บโทเค็น Recall นั้นกับโปรไฟล์ PGS ของผู้ใช้โดยอัตโนมัติ
ตอนนี้ผู้ใช้ตัดสินใจที่จะเล่นเกมใน GPG บน PC เป็นครั้งแรก ระบบจะลงชื่อเข้าใช้ผู้ใช้ด้วยบัญชี PGS โดยอัตโนมัติ และไคลเอ็นต์เกมจะตรวจสอบว่าผู้ใช้ PGS รายนี้มีข้อมูลความคืบหน้าใดๆ หรือไม่ จากนั้นเซิร์ฟเวอร์เกมจะค้นหา Google เพื่อดูว่ามีโทเค็นสำหรับบัญชี PGS นี้หรือไม่ เนื่องจากมีข้อมูลดังกล่าว Google จึงส่งโทเค็นการเรียกคืนกลับไป และเซิร์ฟเวอร์เกมก็ใช้โทเค็นดังกล่าวเพื่อค้นหาบัญชีที่เชื่อมโยงของผู้ใช้ Racer94 และกู้คืนความคืบหน้าของผู้ใช้ เนื่องจากการลงชื่อเข้าใช้ด้วย PGS เป็นประสบการณ์ที่ราบรื่น แอปจึงกู้คืนความคืบหน้าของผู้ใช้ได้โดยที่ผู้ใช้ไม่ต้องป้อนชื่อผู้ใช้หรือรหัสผ่าน นอกจากนี้ นักพัฒนาแอปสามารถใช้การลงชื่อเข้าใช้ PGS กับระบบการระบุตัวตนที่มีอยู่ และพึ่งพา Google ในการจัดเก็บลิงก์ระหว่างความคืบหน้าของผู้เล่นกับบัญชี PGS
ดังที่เห็นในตัวอย่างก่อนหน้านี้ การเรียกคืนข้อมูลด้วย Recall API ประกอบด้วยการดำเนินการหลัก 2 อย่าง ดังนี้
การจัดเก็บโทเค็นไว้กับ Google เมื่อผู้ใช้เข้าสู่ระบบด้วยบัญชีในเกม
การเรียกโทเค็นของผู้ใช้เพื่อกู้คืนบัญชีในเกม
นอกจากโทเค็นการเรียกคืนแล้ว Recall API ยังต้องใช้ตัวระบุที่แน่นอนซึ่งสอดคล้องกับบัญชีในเกมหรือที่เรียกว่าข้อมูลระบุตัวตน เพื่อบังคับใช้ข้อจำกัด Cardinality คุณอาจคิดว่าบุคคลนั้นเป็นป้ายกำกับที่แสดงบัญชีในเกมของผู้ใช้ภายในระบบการระบุตัวตนของนักพัฒนาแอป และโทเค็นการเรียกคืนเป็นกุญแจที่ใช้เพื่อกู้คืนบัญชีในเกมของผู้ใช้ไปยังเกม ห้ามนำค่าของบุคคลและโทเค็นไปใช้ซ้ำในโปรเจ็กต์ PGS ที่แตกต่างกัน นอกจากนี้ แม้ว่าโทเค็นการเรียกคืนอาจเปลี่ยนแปลงเมื่อเวลาผ่านไป แต่บุคลิกภาพควรมีความเสถียรตามบัญชีในเกมของผู้ใช้
กฎ Cardinality
Recall API จะบังคับใช้ความสัมพันธ์แบบ 1:1 ระหว่างโปรไฟล์ PGS กับบัญชีในเกม (เรียกว่ากฎ Cardinality) โดยที่ผู้ใช้ 1 คนจะลิงก์กับโปรไฟล์ PGS ได้เพียงโปรไฟล์เดียว และโปรไฟล์ PGS 1 รายการจะลิงก์กับผู้ใช้ได้เพียง 1 คนเท่านั้น ระบบจะใช้ข้อมูลระบุตัวตนนี้เป็นตัวระบุที่คงที่สำหรับบัญชีในเกม เนื่องจากโทเค็นการเรียกคืนอาจเปลี่ยนแปลงเมื่อเวลาผ่านไป
ข้อมูลระบุตัวตนที่ลิงก์กับโปรไฟล์ PGS อาจเปลี่ยนแปลงเมื่อเวลาผ่านไปด้วย (เนื่องจากมีการลิงก์บัญชีในเกมต่างๆ กับโปรไฟล์ PGS)
ขั้นตอนทางเทคนิคสำหรับการจัดเก็บและเรียกข้อมูลโทเค็น Recall
ส่วนนี้อธิบายขั้นตอนทางเทคนิคระหว่างไคลเอ็นต์เกมกับเซิร์ฟเวอร์ของ Google เมื่อจัดเก็บและเรียกข้อมูลโทเค็นการเรียกคืน
ขั้นตอนที่ 1: ลงชื่อเข้าใช้ผู้ใช้ PGS และเรียกข้อมูลรหัสเซสชัน
เกมจะเริ่มต้น PGS SDK และพยายามลงชื่อเข้าใช้ผู้ใช้ด้วย PGS
สมมติว่าผู้ใช้ลงชื่อเข้าใช้แล้ว ให้ขอรหัสเซสชันจาก Games SDK ในไคลเอ็นต์เกม และขอโทเค็น OAuth 2.0 จากแบ็กเอนด์ OAuth ของ Google ระบบจะใช้รหัสเซสชันและโทเค็น OAuth 2.0 เพื่อสื่อสารกับแบ็กเอนด์ของ Google Games
ขั้นตอนที่ 2: เรียกข้อมูลโทเค็นการเรียกคืนที่มีอยู่
ขอโทเค็นการเรียกคืนที่เชื่อมโยงกับบัญชีผู้ใช้ PGS หากมีโทเค็น ให้ไปที่ขั้นตอนที่ 3ก และกู้คืนความคืบหน้า หรือหากเป็นผู้ใช้ใหม่และไม่มีโทเค็น ให้ไปที่ขั้นตอนที่ 3ข และจัดเก็บโทเค็นใหม่
ขั้นตอนที่ 3ก: หากมีโทเค็น ให้กู้คืนความคืบหน้า
หากมีโทเค็น ให้เรียกข้อมูลและถอดรหัสโทเค็น รวมถึงกู้คืนข้อมูลผู้ใช้
ขั้นตอนที่ 3ข: หากไม่มีโทเค็น ให้จัดเก็บโทเค็น
เนื่องจากไม่มีโทเค็น ระบบจึงไม่สามารถกู้คืนความคืบหน้าได้ ผู้ใช้ลงชื่อเข้าใช้ด้วยระบบข้อมูลประจำตัวของนักพัฒนาแอป หรือสร้างบัญชีใหม่หากยังไม่มี หมายเหตุ - การดําเนินการนี้ไม่ใช่การลงชื่อเข้าใช้ด้วย PGS (ซึ่งดำเนินการไปแล้ว) แต่เป็นการเข้าสู่ระบบด้วยระบบข้อมูลประจำตัวของนักพัฒนาแอปภายนอก PGS
สร้างโทเค็นการเรียกคืนที่เข้ารหัสซึ่งเข้ารหัสบัญชีในเกมของผู้ใช้ และส่งไปยัง Google พร้อมกับรหัสเซสชันและโทเค็น OAuth 2.0 เมื่อถึงจุดนี้ Google จะสร้างการเชื่อมโยงระหว่างโทเค็นการเรียกคืนที่ส่งไปกับบัญชี PGS ของผู้เล่น
ขั้นตอนสำหรับผู้ใช้ที่ไม่มีโปรไฟล์ PGS
คุณสามารถจัดเก็บโทเค็นการเรียกคืนสำหรับผู้ใช้ที่ยังไม่ได้สร้างโปรไฟล์ PGS โดยใช้โหมดไม่มีโปรไฟล์ อย่างไรก็ตาม มีข้อควรระวังสำคัญ 2 ข้อดังนี้
- คุณไม่สามารถเรียกข้อมูลโทเค็นสําหรับผู้ใช้ที่ไม่มีโปรไฟล์ PGS ระบบจะแสดงข้อความแจ้งให้สร้างโปรไฟล์โดยอัตโนมัติเมื่อผู้ใช้พยายามเข้าสู่ระบบเกมด้วยบริการ Play Games ในอุปกรณ์เครื่องที่ 2
- คุณต้องปฏิบัติตามหลักเกณฑ์เพิ่มเติมเพื่อให้แน่ใจว่าคุณมีประกาศที่เหมาะสมซึ่งอธิบายถึงรายการต่อไปนี้และได้รับความยินยอมจากผู้ใช้ปลายทางที่เหมาะสม
- การแชร์ข้อมูลกับ Google เพื่อเปิดใช้ฟีเจอร์การลิงก์บัญชี Play Games
- ความพร้อมใช้งานของการตั้งค่าเพื่อจัดการการแชร์นี้ เช่น การตั้งค่า Play Games
- การประมวลผลข้อมูลดังกล่าวภายใต้นโยบายความเป็นส่วนตัวของ Google
จัดเก็บคู่โทเค็นและบุคคล
- ผู้ใช้ที่ไม่มีโปรไฟล์ PGS เปิดเกมที่เปิดใช้การเรียกคืนแบบไม่มีโปรไฟล์
- Games SDK ทริกเกอร์การลงชื่อเข้าใช้อัตโนมัติ ซึ่งดำเนินการไม่สำเร็จเนื่องจากผู้ใช้ไม่มีโปรไฟล์ PGS
- Games SDK จะแสดงแถบแสดงข้อความเพื่อแจ้งให้ผู้ใช้ทราบว่าเกมผสานรวมกับ Google แล้ว แบนเนอร์นี้จะดำเนินการได้ ผู้ใช้สามารถปิดใช้การเรียกคืนจนกว่าจะมีการสร้างโปรไฟล์
- เกมขอสิทธิ์เข้าถึงการเรียกคืน โปรดทราบว่า PGS จะปฏิเสธคำขอเข้าถึงการเรียกคืนเมื่อมีโปรไฟล์ PGS ในอุปกรณ์หรือเมื่อไม่มีบัญชี Google ในอุปกรณ์ ในกรณีนี้ เกมควรดำเนินต่อไปโดยไม่ใช้ PGS
- หลังจากผู้ใช้เข้าสู่ระบบด้วยบัญชีในเกมแล้ว เกมจะสร้างคู่โทเค็นและบุคคลสำหรับผู้ใช้ซึ่งสอดคล้องกับบัญชีในเกม เกมจะจัดเก็บคู่นี้ไว้กับ Google เกมอาจจัดเก็บโทเค็นเพิ่มเติมในภายหลังหากผู้ใช้เข้าสู่ระบบบัญชีอื่นๆ ในเกม
เปิดเกมในอุปกรณ์เครื่องใหม่
- ผู้ใช้ที่ไม่มีโปรไฟล์ PGS เปิดเกมที่เปิดใช้การเรียกคืนแบบไม่มีโปรไฟล์ในอุปกรณ์
- เกมจะบันทึกโทเค็น Recall ที่ไม่มีโปรไฟล์ตามที่อธิบายไว้ในจัดเก็บโทเค็นและคู่ข้อมูลพร็อพเพอร์ตี้
- ผู้ใช้เปิดเกมเดียวกันในอุปกรณ์เครื่องอื่นที่มีการตั้งค่าบัญชีเดียวกัน
- Games SDK ทริกเกอร์การสร้างโปรไฟล์ ผู้ใช้สามารถตรวจสอบและปฏิเสธโทเค็นการเรียกคืนที่เก็บไว้ก่อนหน้านี้ได้ ผู้ใช้สร้างโปรไฟล์ PGS ในเวลานี้
- การลงชื่อเข้าใช้ PGS โดยอัตโนมัติเสร็จสมบูรณ์ และเกมจะได้รับสถานะ "ตรวจสอบสิทธิ์แล้ว"
- เกมจะดึงข้อมูลโทเค็นการเรียกคืนของผู้ใช้ตามปกติ
ขั้นตอนถัดไป
หากต้องการผสานรวม Recall API กับไคลเอ็นต์และเซิร์ฟเวอร์เกม ให้ทำตามคำแนะนำนี้