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

בנפרד, המפתח שומר טוקן של זיכרון ב-Google, שמתאים לחשבון של המשתמש במשחק. Google שומרת אוטומטית את טוקן הזיכרון הזה בפרופיל PGS של המשתמש.

המשתמש מחליט לשחק במשחק ב-GPG במחשב בפעם הראשונה. המשתמש עובר אימות אוטומטי באמצעות חשבון PGS שלו, ולקוח המשחק בודק אם יש התקדמות זמינה למשתמש הזה ב-PGS. לאחר מכן, שרת המשחק שולח שאילתה ל-Google כדי לבדוק אם יש טוקנים לחשבון הזה ב-PGS. המשחק, Google מחזירה את טוקן הזיכרון, ושרת המשחק משתמש בטוקן הזה כדי למצוא את החשבון המשויך של המשתמש, Racer94, ולשחזר את ההתקדמות שלו. תהליך האימות באמצעות PGS הוא חלק, ולכן ההתקדמות של המשתמש משוחזרת על ידי האפליקציה בלי שהמשתמש צריך להזין שם משתמש או סיסמה. בנוסף, המפתח יכול להשתמש באימות של PGS עם מערכת הזהויות הקיימת שלו, ולהסתמך על Google כדי לאחסן את הקישור בין ההתקדמות של השחקן לבין חשבון PGS שלו.

כפי שאפשר לראות בדוגמה שלמעלה, יש שתי פעולות עיקריות שמבוצעות על ידי Recall API:
שמירת הטוקן ב-Google כשמשתמש מתחבר באמצעות אחד מהחשבונות במשחק.
שליפה של הטוקן של משתמש כדי לשחזר את החשבונות שלו במשחק.
בנוסף לטוקנים של זיכרון, Recall API דורש גם מזהה יציב שמתאים לחשבון במשחק, שנקרא persona. אפשר לחשוב על פרסונה כתווית שמייצגת את החשבון של המשתמש במשחק במערכת הזהויות של המפתח, ועל אסימון ההחזרה כעל מפתח שמשמש לשחזור החשבון של המשתמש במשחק. אסור לעשות שימוש חוזר בערכי פרסונה ובערכי טוקן בפרויקטים שונים של PGS. בנוסף, יכול להיות שאסימוני Recall ישתנו לאורך זמן, אבל הפרופיל צריך להיות יציב בהתאם לחשבון של המשתמש במשחק.
תהליכים טכניים לאחסון ולאחזור של טוקנים של Recall
בקטע הזה מוסבר על התהליך הטכני בין לקוח המשחק לבין השרתים, עם שרתי Google, כשמאחסנים ומאחזרים טוקנים של זיכרון.
שלב 1: מאמתים את המשתמש ב-PGS ומאחזרים את מזהה הסשן
המשחק מאתחל את PGS SDK ומנסה לאמת את המשתמש באמצעות PGS.

בהנחה שהמשתמש מאומת, מבקשים מ-Games SDK מזהה סשן בלקוח המשחק, ומבקשים טוקן OAuth 2.0 מהקצה העורפי של OAuth של Google. מזהה הסשן ואסימוני OAuth 2.0 משמשים לתקשורת עם ה-Backend של Google Games.

שלב 2: מאחזרים טוקן זמין לביטול הרשאה
בקשה לטוקן שחזור משויך כלשהו עם חשבון המשתמש ב-PGS. אם יש טוקן, ממשיכים לשלב 3א ומשחזרים את ההתקדמות. אחרת, אם מדובר במשתמש חדש ואין לו טוקן, ממשיכים לשלב 3ב ושומרים טוקן חדש.

שלב 3א: אם יש טוקן, משחזרים את ההתקדמות
אם יש אסימון, מאחזרים ומפענחים אותו ומשחזרים את נתוני המשתמש.

שלב 3ב: אם לא קיים טוקן, מאחסנים טוקן
מכיוון שלא קיים טוקן, לא מתבצע שחזור של ההתקדמות. המשתמש ממשיך לאימות הפלטפורמה באמצעות מערכת הזהויות של המפתח, או יוצר חשבון חדש אם אין לו חשבון קיים. הערה – האימות הזה לא מתבצע באמצעות PGS (שכבר בוצע), אלא באמצעות מערכת הזהויות של מפתח מחוץ ל-PGS.

יוצרים טוקן זיכרון מוצפן שמקודד את החשבון של המשתמש במשחק, ושולחים אותו ל-Google יחד עם מזהה הסשן וטוקן OAuth 2.0. בשלב הזה, Google יוצרת שיוך בין טוקן הזיכרון שנשלח לבין חשבון ה-PGS של השחקן.

תהליכי עבודה למשתמשים ללא פרופיל PGS
אפשר לאחסן טוקנים של ריקול למשתמש שעדיין לא יצר פרופיל PGS באמצעות מצב ללא פרופיל. עם זאת, יש שני דברים שחשוב לזכור:
- אי אפשר לאחזר טוקנים של משתמשים שאין להם פרופיל PGS. ההנחיות ליצירת פרופיל מופיעות אוטומטית כשמשתמש מנסה להיכנס למשחק שלכם באמצעות Play Games Services במכשיר שני.
- כדי לוודא שאתם מציגים הודעה מתאימה שמתארת את הפריטים הבאים ומקבלים את ההסכמה המתאימה ממשתמשי הקצה, אתם צריכים לפעול בהתאם להנחיות הנוספות:
- השיתוף של הנתונים עם Google כדי להפעיל את התכונה של קישור חשבון Play Games.
- ההגדרות שזמינות לניהול השיתוף הזה, כמו ההגדרות של Play Games.
- העיבוד של הנתונים האלה מתבצע בהתאם למדיניות הפרטיות של Google.
שמירת צמד של טוקן ופרסונה

- משתמש ללא פרופיל PGS פותח משחק שבו מופעלת תכונת הריקול ללא פרופיל.
- ערכת ה-SDK של המשחקים מפעילה אימות אוטומטי של הפלטפורמה, שנכשל כי למשתמש אין פרופיל PGS.
- ה-SDK של משחקים מציג חלונית קופצת שמודיעה למשתמש שהמשחק משולב עם Google. הסנאקבר הזה מאפשר פעולה – המשתמש יכול להשבית את התכונה 'זיכרון שיחות' עד ליצירת פרופיל.
- המשחק מבקש גישה לזיכרון. חשוב לזכור ש-PGS דוחה בקשות לגישה לריקול אם יש פרופילים של PGS במכשיר או אם אין חשבונות Google במכשיר. במקרה כזה, המשחק צריך להמשיך לפעול בלי להשתמש ב-PGS.
- אחרי שהמשתמש מתחבר באמצעות חשבון במשחק, המשחק יוצר טוקן וזוג פרסונה עבור המשתמש שתואמים לחשבון שלו במשחק. המשחק שומר את הצמד הזה ב-Google. יכול להיות שהמשחק ישמור עוד טוקנים בהמשך אם המשתמש יתחבר לחשבונות אחרים במשחק.
הפעלת משחק במכשיר חדש
- משתמש ללא פרופיל PGS פותח במכשיר משחק שבו מופעלת תכונת הריקול ללא פרופיל.
- המשחק מתעד טוקן Recall ללא פרופיל, כפי שמתואר במאמר שמירת טוקן וזוג פרסונות.
- המשתמש פותח את אותו משחק במכשיר אחר שבו מוגדר אותו חשבון.
- ערכת ה-SDK של Games מפעילה את יצירת הפרופיל. המשתמש יכול לבדוק ולדחות אסימוני Recall שנשמרו בעבר. בשלב הזה המשתמש יוצר פרופיל PGS.
- האימות האוטומטי של הפלטפורמה ב-PGS מסתיים, והמשחק מקבל את סטטוס האימות.
- המשחק מאחזר את אסימוני הזיכרון של המשתמש כרגיל.
השלבים הבאים
כדי לשלב את Recall API עם הלקוח ועם שרת המשחק, פועלים לפי ההנחיות האלה.