استدعاء "خدمات ألعاب Play"

يمكنك تسجيل دخول المستخدمين إلى لعبتك بسلاسة مع مواصلة استخدام نظام حسابك الخاص. باستخدام واجهات برمجة التطبيقات Recall في "خدمات ألعاب Google Play"، يمكنك ربط الحسابات داخل اللعبة بحساب على "خدمات ألعاب Google Play". بعد ذلك، عندما يلعب المستخدم لعبتك على أجهزة مختلفة (أو على الجهاز نفسه بعد إعادة تثبيت لعبتك)، يمكنك طلب الحساب المرتبط داخل اللعبة وتبسيط عملية تسجيل الدخول.

إذا كنت قد أجريت عملية دمج مع واجهات برمجة التطبيقات Recall على Android، من المفترض أن تكون هذه الواجهات مألوفة لديك. يمكن إعادة استخدام أي عمليات دمج من جهة الخادم مع ميزة Recall في "خدمات ألعاب Play" من خلال ألعاب الكمبيوتر، لأنّها متطابقة على كلٍّ من Android والكمبيوتر.

مساحة الاسم: PlayPcSdkManaged.Recall

فئة العميل: RecallClient

المتطلّبات الأساسية

إضافة رقم تعريف مشروع "خدمات ألعاب Play" في ملف البيان

بعد إكمال عملية إعداد "خدمات ألعاب 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>

ملاحظة: إذا أردت استخدام حزمة تطوير البرامج (SDK) للكمبيوتر أثناء التطوير في Unity Editor بدون الحاجة إلى توقيع ملف اللعبة القابل للتنفيذ رقميًا أو تشغيله من "ألعاب Google Play". للاطّلاع على خطوات إضافية لإعداد ملف البيان، يُرجى مراجعة دليل إعداد وضع مطور البرامج.

إنشاء العميل

استخدِم دائمًا المصنع لإنشاء 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 وتمرّره إلى خادم اللعبة الخلفي ، استخدِم واجهات برمجة تطبيقات REST من جهة الخادم في "ألعاب Play" لإجراء ما يلي:

  • طلب الحسابات المرتبطة الحالية داخل اللعبة باستخدام recall.retrieveTokens
  • إضافة حسابات مرتبطة داخل اللعبة أو تعديلها باستخدام recall.linkPersona
  • حذف حسابات مرتبطة داخل اللعبة باستخدام recall.unlinkPersona

للاطّلاع على دليل أكثر تفصيلاً يغطي عملية الدمج من جهة الخادم، يُرجى مراجعة الـ مستندات التي توضّح كيفية الـ استخدام واجهة برمجة التطبيقات Recall داخل خادم اللعبة.