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