ריקול של Play Games Services

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

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

יצירת הלקוח

תמיד משתמשים ב-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 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 בשרת הגיימינג.