ลงชื่อเข้าใช้เกมของผู้ใช้ได้อย่างราบรื่นขณะที่ใช้ระบบบัญชีของคุณเองต่อไป Recall API ของบริการเกมของ Play ช่วยให้คุณลิงก์บัญชีในเกมกับบัญชีบริการเกมของ Google Play ได้ จากนั้นเมื่อผู้ใช้เล่นเกมของคุณในอุปกรณ์ต่างๆ (หรืออุปกรณ์เครื่องเดิมหลังจากติดตั้งเกมใหม่) คุณจะค้นหาบัญชีในเกมที่ลิงก์ไว้และทำให้ขั้นตอนการลงชื่อเข้าใช้ราบรื่นขึ้น
หากคุณผสานรวมกับ Recall API ของ Android มาแล้ว คุณจะคุ้นเคยกับ Recall API เหล่านี้ ระบบสามารถนำการผสานรวมฝั่งเซิร์ฟเวอร์กับ Recall ของบริการเกมของ Play กลับมาใช้ซ้ำกับเกมบน PC ได้ เนื่องจาก API เหล่านี้เหมือนกันทั้งใน Android และ PC
สิ่งที่ต้องมีก่อน
ตั้งค่า SDK ให้เสร็จสมบูรณ์
อ่านภาพรวมของ Recall API ของบริการเกมของ Play
ตั้งค่าบริการเกมของ Google Playใน Play Console ให้เสร็จสมบูรณ์
ขั้นตอนที่ 1: เพิ่มรหัสโปรเจ็กต์บริการเกมของ Play ในไฟล์ Manifest
หลังจากตั้งค่าบริการเกมของ Play ใน Play Console เสร็จแล้ว ตอนนี้เกมของคุณจะมีรหัสโปรเจ็กต์ของบริการเกมของ Play ที่เชื่อมโยงอยู่ ให้อัปเดต manifest.xml ของเกมโดยใช้รหัสโปรเจ็กต์นี้
ซึ่งดูได้ในหน้าการกำหนดค่าของบริการเกมของ Play ใน Play Console
ตัวอย่างเนื้อหา manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<?Manifest version="1">
<?Application>
<?PackageName>com.example.package<?/PackageName>
<?PlayGamesServices>
<?ProjectId>123456789<?/ProjectId>
<?/PlayGamesServices>
<?/Application>
<?/Manifest>
ขั้นตอนที่ 2: ขอสิทธิ์เข้าถึง Recall เมื่อลงชื่อเข้าใช้
เมื่อเกมของคุณจัดการขั้นตอนการลงชื่อเข้าใช้ เช่น การเพิ่มบัญชีในเกม
ให้ขอสิทธิ์เข้าถึง Recall โดยใช้
GamesRecallClient::RequestRecallAccess()
การเรียกนี้จะแสดงผลรหัสเซสชันที่แบ็กเอนด์ใช้เพื่อทำการเรียกฝั่งเซิร์ฟเวอร์ไปยัง Google เพื่อลิงก์และยกเลิกการลิงก์บัญชีในเกมกับผู้ใช้บริการเกมของ Play
auto promise = std::make_shared<std::promise<RecallAccessResult>>();
games_recall_client.RequestRecallAccess(params, [promise](RecallAccessResult result) {
promise->set_value(std::move(result));
});
auto recall_access_result = promise->get_future().get();
if (recall_access_result.ok()) {
auto recall_session_id = recall_access_result.value().recall_session_id;
// Pass the recall session ID to your backend game server so it can query
// for an existing linked in-game account.
// - If you discover an existing linked in-game account, continue to sign-in
// the in-game account. This provides a seamless cross-device sign-in
// experience.
// - If there is not an existing linked in-game account, when the user
// completes the sign-in using your in-game account system record the
// account linking with Play Games Services Recall. This helps to provide
// a seamless cross-device sign-in experience when the user returns on a
// different device or after re-installing your game on the same device.
} else {
// Handle the error
}
ขั้นตอนที่ 3: ประมวลผลรหัสเซสชัน Recall
เมื่อเกมของคุณมีรหัสเซสชัน Recall และส่งรหัสนี้ไปยังเซิร์ฟเวอร์เกมแบ็กเอนด์แล้ว ให้ใช้ REST API ฝั่งเซิร์ฟเวอร์ของ Play Games เพื่อดำเนินการต่อไปนี้
- ค้นหาบัญชีในเกมที่ลิงก์ไว้ที่มีอยู่โดยใช้
recall.retrieveTokens - เพิ่มหรืออัปเดตบัญชีในเกมที่ลิงก์ไว้โดยใช้
recall.linkPersona - ลบบัญชีในเกมที่ลิงก์ไว้โดยใช้
recall.unlinkPersona
ดูคำแนะนำโดยละเอียดเพิ่มเติมเกี่ยวกับการผสานรวมฝั่งเซิร์ฟเวอร์ได้ใน เอกสารประกอบที่อธิบายวิธี ใช้ Recall API ภายในเซิร์ฟเวอร์เกม