ลงชื่อเข้าใช้เกมให้ผู้ใช้ได้อย่างราบรื่นในขณะที่ใช้ระบบบัญชีของคุณเองต่อไป Play Games Services Recall API ช่วยให้คุณลิงก์บัญชีในเกมกับบัญชีบริการเกมของ Google Play ได้ จากนั้นเมื่อผู้ใช้เล่นเกมของคุณใน อุปกรณ์ต่างๆ (หรืออุปกรณ์เดียวกันหลังจากติดตั้งเกมของคุณใหม่) คุณจะค้นหา บัญชีในเกมที่ลิงก์ไว้และเพิ่มประสิทธิภาพขั้นตอนการลงชื่อเข้าใช้
หากคุณผสานรวมกับ Android Recall API คุณจะคุ้นเคยกับ Recall API เหล่านี้ เกมบน PC สามารถนำการผสานรวมฝั่งเซิร์ฟเวอร์กับ Recall ของบริการเกมของ Play มาใช้ซ้ำได้ เนื่องจากเป็นเกมเดียวกันทั้งบน Android และ PC
เนมสเปซ: PlayPcSdkManaged.Recall
คลาสไคลเอ็นต์: RecallClient
สิ่งที่ต้องมีก่อน
อ่านภาพรวมของ Play Games Services Recall API
ตั้งค่าบริการเกมของ Google Play ใน Play Console ให้เสร็จสมบูรณ์
เพิ่มรหัสโปรเจ็กต์บริการเกมของ 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>
หมายเหตุ: หากต้องการใช้ PC SDK ขณะพัฒนาใน Unity Editor โดยไม่ต้องลงนามแบบดิจิทัลในไฟล์ปฏิบัติการของเกมหรือเปิดใช้จาก Google Play Games ดูขั้นตอนการกำหนดค่าไฟล์ Manifest เพิ่มเติมได้ที่ คู่มือการตั้งค่าโหมดนักพัฒนาซอฟต์แวร์
สร้างไคลเอ็นต์
ใช้ Factory เพื่อสร้าง RecallClient เสมอ ซึ่งจะช่วยให้มั่นใจได้ว่าระบบจะลงทะเบียนการเรียกกลับที่ปลอดภัยสำหรับ Unity โดยอัตโนมัติ
using UnityEngine; using System; using System.Threading.Tasks; // Required SDK Namespaces using PlayPcSdkManaged.Recall; using PlayPcSdkManaged.Unity; public class RecallManager : MonoBehaviour { private RecallClient _recallClient; public void SetupRecall() { try { // Creates the client with the required UnityRecallCallbacksHandler _recallClient = PlayPcSdkFactory.CreateRecallClient(); Debug.Log("Recall Client created successfully."); } catch (Exception ex) { Debug.LogError($"Failed to create Recall Client: {ex.Message}"); } } private void OnDestroy() { // Always dispose of the client to clean up native C++ resources _recallClient?.Dispose(); } }
ขอสิทธิ์เข้าถึงฟีเจอร์เรียกคืน
เมื่อเกมจัดการขั้นตอนการลงชื่อเข้าใช้ เช่น การเพิ่มบัญชีในเกม ให้ขอสิทธิ์เข้าถึง Recall โดยใช้ RequestRecallAccessAsync
การเรียกนี้จะแสดงรหัสเซสชันที่แบ็กเอนด์ใช้เพื่อทำการเรียกฝั่งเซิร์ฟเวอร์ไปยัง Google เพื่อลิงก์และยกเลิกการลิงก์บัญชีในเกม กับผู้ใช้บริการเกมของ Play
public async Task RequestRecallAccessAsync() { try { Debug.Log("Requesting Recall access..."); // Async call to retrieve the session ID var result = await _recallClient.RequestRecallAccessAsync(); if (result.IsOk) { // On success, access the RecallSessionId var sessionId = result.Value.RecallSessionId; Debug.Log($"Recall Access Granted! Session ID: {sessionId}"); // Pass 'sessionId' to your backend server to process account linking } else { // Handle expected API errors (e.g., Error) Debug.LogError($"Request Failed: {result.Code} - {result.ErrorMessage}"); } } catch (Exception ex) { Debug.LogException(ex); } }
ประมวลผลรหัสเซสชันของฟีเจอร์ความทรงจำ
เมื่อเกมมีรหัสเซสชันการเรียกคืนและส่งไปยังเซิร์ฟเวอร์เกมแบ็กเอนด์แล้ว ให้ใช้ REST API ฝั่งเซิร์ฟเวอร์ของ Play Games เพื่อทำสิ่งต่อไปนี้
- ค้นหาบัญชีในเกมที่ลิงก์ไว้แล้วโดยใช้
recall.retrieveTokens - เพิ่มหรืออัปเดตบัญชีในเกมที่ลิงก์ไว้โดยใช้
recall.linkPersona - ลบบัญชีในเกมที่ลิงก์ไว้โดยใช้
recall.unlinkPersona
ดูคำแนะนำแบบละเอียดเพิ่มเติมเกี่ยวกับการผสานรวมฝั่งเซิร์ฟเวอร์ได้ที่เอกสารประกอบเกี่ยวกับวิธีใช้ Recall API ภายในเซิร์ฟเวอร์เกม