การเรียกคืนบริการเกมของ Play

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

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

เนมสเปซ: PlayPcSdkManaged.Recall

คลาสไคลเอ็นต์: RecallClient

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

เพิ่มรหัสโปรเจ็กต์บริการเกมของ 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 ภายในเซิร์ฟเวอร์เกม