فراخوانی خدمات بازی های Play

کاربران را به طور یکپارچه وارد بازی خود کنید و در عین حال از سیستم حساب کاربری خود استفاده کنید. با APIهای Recall Services Play Games می‌توانید حساب‌های درون بازی را با یک حساب Google Play Games Services پیوند دهید. سپس وقتی کاربری بازی شما را در دستگاه‌های مختلف (یا همان دستگاه پس از نصب مجدد بازی) انجام می‌دهد، حساب درون بازی پیوند داده شده را جستجو کرده و جریان ورود به سیستم را ساده می‌کنید.

اگر با APIهای Recall اندروید ادغام شده باشید، این APIهای Recall باید آشنا به نظر برسند. هرگونه ادغام سمت سرور با Play Games Services Recall می‌تواند توسط عناوین PC دوباره استفاده شود زیرا در Android و PC یکسان هستند.

فضای نام: PlayPcSdkManaged.Recall

کلاس کلاینت: RecallClient

پیش‌نیازها

شناسه پروژه Play Games Services خود را در مانیفست اضافه کنید

پس از تکمیل تنظیمات Play Games Services در کنسول Play، بازی شما اکنون یک شناسه پروژه Play Games Services مرتبط دارد. با استفاده از این شناسه پروژه، که می‌توانید آن را در صفحه پیکربندی Play Games Services در کنسول Play پیدا کنید، 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>

توجه: اگر می‌خواهید هنگام توسعه در ویرایشگر یونیتی، بدون نیاز به امضای دیجیتالی فایل اجرایی بازی یا اجرای آن از Google Play Games، از کیت توسعه نرم‌افزار (SDK) کامپیوتر استفاده کنید. برای مراحل پیکربندی بیشتر مانیفست، به راهنمای تنظیم حالت توسعه‌دهنده مراجعه کنید.

کلاینت را ایجاد کنید

همیشه از factory برای ایجاد RecallClient استفاده کنید. این کار تضمین می‌کند که callbackهای ایمن در 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();
    }
}

درخواست دسترسی مجدد

وقتی بازی شما در حال مدیریت جریان ورود به سیستم است، مثلاً اضافه کردن یک حساب کاربری درون بازی، با استفاده از RequestRecallAccessAsync درخواست دسترسی Recall را بدهید.

این فراخوانی، یک شناسه جلسه (session ID) را برمی‌گرداند که توسط backend شما برای برقراری فراخوانی‌های سمت سرور به گوگل جهت اتصال و قطع اتصال حساب‌های درون بازی شما با یک کاربر Play Games Services استفاده می‌شود.

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 را دریافت کرد و آن را به سرور بازی backend خود منتقل کرد، از APIهای REST سمت سرور Play Games برای موارد زیر استفاده کنید:

  • با استفاده از recall.retrieveTokens حساب‌های کاربری درون بازیِ لینک‌شده‌ی موجود را جستجو کنید
  • حساب‌های درون بازی مرتبط را با استفاده از recall.linkPersona اضافه یا به‌روزرسانی کنید
  • حساب‌های کاربری درون بازی لینک‌شده را با استفاده از recall.unlinkPersona حذف کنید

برای راهنمای دقیق‌تر در مورد ادغام سمت سرور، به مستندات مربوط به نحوه استفاده از Recall API در سرور بازی خود مراجعه کنید.