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