ריקול של Play Games Services

אתם יכולים להשתמש במערכת החשבונות שלכם כדי לאפשר למשתמשים להיכנס למשחק בצורה חלקה. בעזרת Recall APIs של Google Play Games Services אתם יכולים לקשר חשבונות במשחק לחשבון ב-Google Play Games Services. לאחר מכן, כשמשתמש משחק במשחק שלכם במכשירים שונים (או באותו מכשיר אחרי התקנה מחדש של המשחק), אתם יכולים לשלוף את החשבון המקושר במשחק ולייעל את תהליך הכניסה.

אם שילבתם את ממשקי Recall API ל-Android, ממשקי Recall API האלה אמורים להיות מוכרים לכם. אפשר לעשות שימוש חוזר בשילובים בצד השרת עם Recall של Play Games Services במשחקים למחשב, כי הם זהים גם ב-Android וגם במחשב.

מרחב שמות: PlayPcSdkManaged.Recall

סיווג הלקוח: RecallClient

דרישות מוקדמות

הוספת מזהה הפרויקט של Play Games Services למניפסט

אחרי שמסיימים את ההגדרה של Play Games Services ב-Play Console, למשחק יש עכשיו מזהה פרויקט משויך של Play Games Services. בעזרת מזהה הפרויקט הזה, שאפשר למצוא בדף ההגדרות של Play Games Services ב-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 Games. שלבים נוספים להגדרת קובץ המניפסט מפורטים במדריך להגדרת מצב פיתוח.

יצירת הלקוח

תמיד משתמשים במפעל כדי ליצור 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();
    }
}

בקשת גישה לביטול שליחה

כשהמשחק מטפל בתהליך כניסה, למשל כשמוסיפים חשבון במשחק, צריך לשלוח בקשה לגישה ל-Recall באמצעות RequestRecallAccessAsync.

הקריאה הזו מחזירה מזהה סשן שמשמש את הקצה העורפי שלכם כדי לבצע קריאות בצד השרת אל Google לצורך קישור וביטול קישור של החשבונות במשחק עם משתמש ב-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

אחרי שהמשחק מקבל את מזהה הסשן של Recall ומעביר אותו לשרת הבק-אנד של המשחק, צריך להשתמש בממשקי ה-API של Play Games בארכיטקטורת REST בצד השרת כדי:

  • שליחת שאילתה לגבי חשבונות קיימים שמקושרים למשחק באמצעות recall.retrieveTokens
  • הוספה או עדכון של חשבונות מקושרים במשחק באמצעות recall.linkPersona
  • מחיקת חשבונות מקושרים במשחק באמצעות recall.unlinkPersona

מדריך מפורט יותר בנושא שילוב בצד השרת זמין במסמכי התיעוד בנושא שימוש ב-Recall API בשרת הגיימינג.