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