ผสานรวม Recall ของบริการเกมของ Play เข้ากับแอปของคุณ

ลงชื่อเข้าใช้เกมของผู้ใช้ได้อย่างราบรื่นขณะที่ใช้ระบบบัญชีของคุณเองต่อไป Recall API ของบริการเกมของ Play ช่วยให้คุณลิงก์บัญชีในเกมกับบัญชีบริการเกมของ Google Play ได้ จากนั้นเมื่อผู้ใช้เล่นเกมของคุณในอุปกรณ์ต่างๆ (หรืออุปกรณ์เครื่องเดิมหลังจากติดตั้งเกมใหม่) คุณจะค้นหาบัญชีในเกมที่ลิงก์ไว้และทำให้ขั้นตอนการลงชื่อเข้าใช้ราบรื่นขึ้น

หากคุณผสานรวมกับ Recall API ของ Android มาแล้ว คุณจะคุ้นเคยกับ Recall API เหล่านี้ ระบบสามารถนำการผสานรวมฝั่งเซิร์ฟเวอร์กับ Recall ของบริการเกมของ Play กลับมาใช้ซ้ำกับเกมบน PC ได้ เนื่องจาก API เหล่านี้เหมือนกันทั้งใน Android และ PC

สิ่งที่ต้องมีก่อน

ขั้นตอนที่ 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 ภายในเซิร์ฟเวอร์เกม