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