ลงชื่อเข้าใช้ผู้ใช้ในเกมได้อย่างราบรื่นขณะใช้ระบบบัญชีของคุณเองต่อไป Play Games Services Recall API ช่วยให้คุณลิงก์บัญชีในเกมกับบัญชีบริการเกมของ Google Play ได้ เมื่อผู้ใช้เล่นเกมในอุปกรณ์ต่างๆ (หรืออุปกรณ์เครื่องเดิมหลังจากติดตั้งเกมอีกครั้ง) คุณจะค้นหาบัญชีในเกมที่ลิงก์ไว้และปรับปรุงขั้นตอนการลงชื่อเข้าใช้ได้
หากคุณผสานรวมกับ Android Recall API อยู่แล้ว Recall API เหล่านี้จะดูคุ้นเคย การผสานรวมฝั่งเซิร์ฟเวอร์กับบริการเกมของ Play Recall สามารถนำมาใช้ซ้ำกับเกมบน PC ได้ เนื่องจากข้อมูลเหมือนกันทั้งใน Android และ PC
สิ่งที่ต้องมีก่อน
ตั้งค่า SDK ให้เสร็จสมบูรณ์
อ่านภาพรวมของ Play Games Services Recall API
ตั้งค่าบริการเกมของ Google Play ให้เสร็จสมบูรณ์ใน Play Console
ขั้นตอนที่ 1: เพิ่มรหัสโปรเจ็กต์บริการเกมของ Play ในไฟล์ Manifest
หลังจากตั้งค่าบริการเกมของ Play ใน Play Console เสร็จแล้ว ตอนนี้เกมของคุณจะมีรหัสโปรเจ็กต์ของบริการเกมของ Play ที่เชื่อมโยงอยู่ ใช้รหัสโปรเจ็กต์นี้ซึ่งดูได้ในหน้าการกําหนดค่าของบริการ Play Games ใน Play Console เพื่ออัปเดต manifest.xml
ของเกม
ตัวอย่างเนื้อหา 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: ขอสิทธิ์เข้าถึงแบบเรียกคืนเมื่อลงชื่อเข้าใช้
เมื่อเกมจัดการขั้นตอนการลงชื่อเข้าใช้ เช่น การเพิ่มบัญชีในเกม ให้ขอสิทธิ์เข้าถึงแบบเรียกคืนโดยใช้ GamesRecallClient::RequestRecallAccess()
การเรียกนี้แสดงผลรหัสเซสชันที่แบ็กเอนด์ใช้เพื่อเรียกใช้ Google ฝั่งเซิร์ฟเวอร์เพื่อลิงก์และยกเลิกการลิงก์บัญชีในเกมกับผู้ใช้บริการ Play Games
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: ประมวลผลรหัสเซสชันการเรียกคืน
เมื่อเกมมีรหัสเซสชันการเรียกคืนและส่งรหัสดังกล่าวไปยังเซิร์ฟเวอร์เกมแบ็กเอนด์แล้ว ให้ใช้ REST API ฝั่งเซิร์ฟเวอร์ของ Play Games เพื่อดำเนินการต่อไปนี้
- การค้นหาบัญชีในเกมที่ลิงก์ที่มีอยู่โดยใช้
recall.retrieveTokens
- เพิ่มหรืออัปเดตบัญชีในเกมที่ลิงก์โดยใช้
recall.linkPersona
- ลบบัญชีในเกมที่ลิงก์โดยใช้
recall.unlinkPersona
ดูคู่มือโดยละเอียดเกี่ยวกับการผสานรวมฝั่งเซิร์ฟเวอร์ได้ที่เอกสารประกอบเกี่ยวกับวิธีใช้ Recall API ในเซิร์ฟเวอร์เกม