בעזרת Recall API, משחקים יכולים לנהל קישורים בין משתמשים ב-Play Games Services (PGS) לבין החשבונות שלהם במשחק, על ידי שמירת טוקנים של Recall בשרתי Google. הנה תרחיש לדוגמה לשימוש ב-Recall API.
משתמש משחק במשחק שבו למפתח יש מערכת זהויות למעקב אחרי התקדמות המשתמש, והוא משתמש ב-PGS במקביל לשיטות אימות אחרות כדי לאפשר למשתמשים להיכנס למשחק. בדוגמה הזו, משתמשת מחוברת לחשבון שלה ב-PGS Laura, ויוצרת חשבון במשחק עם מערכת הזהויות של המפתח שנקראת Racer94. במהלך המשחק, שרת המשחק של המפתח מסנכרן את ההתקדמות של המשתמש.
בנפרד, המפתח שומר טוקן להחזרת נתונים ב-Google, שמתאים לחשבון של המשתמש במשחק. Google שומרת באופן אוטומטי את אסימון ה-Recall הזה בפרופיל PGS של המשתמש.
המשתמש מחליט לשחק במשחק ב-GPG במחשב בפעם הראשונה. המשתמש עובר אימות אוטומטי באמצעות חשבון PGS שלו, ולקוח המשחק בודק אם יש התקדמות זמינה למשתמש הזה ב-PGS. לאחר מכן, שרת המשחק שולח שאילתה ל-Google כדי לבדוק אם יש אסימונים לחשבון הזה ב-PGS. מכיוון שיש התאמה, Google מחזירה את אסימון השחזור, ושרת המשחק משתמש באסימון הזה כדי למצוא את החשבון המשויך של המשתמש, Racer94, ולשחזר את ההתקדמות שלו. האימות באמצעות PGS הוא חוויה חלקה, ולכן ההתקדמות של המשתמש משוחזרת על ידי האפליקציה בלי שהמשתמש צריך להזין שם משתמש או סיסמה. בנוסף, המפתח יכול להשתמש באימות PGS עם מערכת הזהויות הקיימת שלו, ולהסתמך על Google לאחסון הקישור בין ההתקדמות של השחקן לבין חשבון PGS שלו.
כפי שאפשר לראות בדוגמה שלמעלה, יש שתי פעולות עיקריות שמבוצעות על ידי Recall API:
אחסון הטוקן ב-Google כשמשתמש מתחבר באמצעות אחד מהחשבונות במשחק.
שליפת הטוקן של משתמש כדי לשחזר את החשבונות שלו במשחק.
בנוסף לטוקנים של Recall, ב-Recall API נדרש גם מזהה יציב שמתאים לחשבון במשחק, שנקרא פרסונה. אפשר לחשוב על פרסונה כתווית שמייצגת את החשבון של המשתמש במשחק במערכת הזהויות של המפתח, ועל אסימון ההחזרה כעל מפתח שמשמש לשחזור החשבון של המשתמש במשחק. אסור לעשות שימוש חוזר בערכי הפרסונה והאסימון בפרויקטים שונים של PGS. בנוסף, יכול להיות שאסימוני Recall ישתנו לאורך זמן, אבל הפרופיל צריך להיות יציב בהתאם לחשבון של המשתמש במשחק.
תהליכים טכניים לאחסון ולאחזור של טוקנים של Recall
בקטע הזה מתואר התהליך הטכני בין לקוח המשחק לבין השרתים, כולל השרתים של Google, כשמאחסנים ומאחזרים אסימוני גישה.
שלב 1: מאמתים את משתמש ה-PGS ומאחזרים את מזהה הסשן
המשחק מפעיל את PGS SDK ומנסה לאמת את המשתמש באמצעות PGS.
בהנחה שהמשתמש מאומת, מבקשים מ-Games SDK מזהה סשן בלקוח המשחק, ומבקשים טוקן OAuth 2.0 מהקצה העורפי של OAuth של Google. מזהה הסשן ואסימוני OAuth 2.0 משמשים לתקשורת עם ה-Backend של Google Games.
שלב 2: מאחזרים טוקן ביטול זמין
בקשה לקבלת אסימון Recall שמשויך לחשבון המשתמש ב-PGS. אם יש טוקן, ממשיכים לשלב 3א ומשחזרים את ההתקדמות. אחרת, אם מדובר במשתמש חדש ואין לו טוקן, ממשיכים לשלב 3ב ושומרים טוקן חדש.
שלב 3א: אם הטוקן קיים, משחזרים את ההתקדמות
אם יש אסימון, מאחזרים ומפענחים אותו, ומשחזרים את נתוני המשתמש.
שלב 3ב: אם לא קיים טוקן, מאחסנים טוקן
מכיוון שלא קיים טוקן, לא מתבצע שחזור של ההתקדמות. המשתמש ממשיך לאימות הפלטפורמה באמצעות מערכת הזהויות של המפתח, או יוצר חשבון חדש אם אין לו חשבון. הערה – האימות הזה לא מתבצע באמצעות PGS (שכבר בוצע), אלא באמצעות מערכת הזהויות של מפתח מחוץ ל-PGS.
יוצרים אסימון מוצפן לביטול ההסכמה שמקודד את החשבון של המשתמש במשחק, ושולחים אותו ל-Google יחד עם מזהה הסשן ואסימון OAuth 2.0. בשלב הזה, Google יוצרת שיוך בין אסימון הביטול שנשלח לבין חשבון PGS של השחקן.
תהליכי עבודה למשתמשים ללא פרופיל PGS
אפשר לאחסן טוקנים של ריקול למשתמש שעדיין לא יצר פרופיל PGS באמצעות מצב ללא פרופיל. עם זאת, יש שני דברים שחשוב לזכור:
- אי אפשר לאחזר טוקנים של משתמשים שאין להם פרופיל PGS. המשתמש יקבל באופן אוטומטי בקשה ליצור פרופיל כשהוא ינסה להיכנס למשחק באמצעות שירותי Play Games במכשיר שני.
- כדי לוודא שאתם מציגים הודעה מתאימה שמתארת את הפריטים הבאים ומקבלים את ההסכמה המתאימה ממשתמשי הקצה, אתם צריכים לפעול בהתאם להנחיות הנוספות:
- השיתוף של הנתונים עם Google כדי להפעיל את התכונה של קישור חשבון Play Games.
- הזמינות של הגדרות לניהול השיתוף הזה, כמו ההגדרות של Play Games.
- עיבוד הנתונים האלה בהתאם למדיניות הפרטיות של Google.
שמירת צמד של טוקן ופרסונה
- משתמש ללא פרופיל PGS פותח משחק שבו מופעלת תכונת ה-Recall ללא פרופיל.
- ערכת ה-SDK של המשחקים מפעילה אימות אוטומטי של הפלטפורמה, שנכשל כי למשתמש אין פרופיל PGS.
- ב-Games SDK מוצגת הודעה קצרה (snackbar) שמודיעה למשתמש שהמשחק משולב עם Google. הסנאקבר הזה מאפשר פעולה – המשתמש יכול להשבית את התכונה 'זיכרון' עד ליצירת פרופיל.
- המשחק מבקש גישה לזיכרון. שימו לב: PGS דוחה בקשות גישה לריקול אם יש פרופילים של PGS במכשיר או אם אין חשבונות Google במכשיר. במקרה כזה, המשחק צריך להמשיך לפעול בלי להשתמש ב-PGS.
- אחרי שהמשתמש מתחבר באמצעות חשבון במשחק, המשחק יוצר טוקן וזוג פרסונה עבור המשתמש שתואמים לחשבון שלו במשחק. המשחק שומר את הצמד הזה ב-Google. יכול להיות שהמשחק ישמור עוד טוקנים בהמשך אם המשתמש יתחבר לחשבונות אחרים במשחק.
הפעלת משחק במכשיר חדש
- משתמש ללא פרופיל PGS פותח במכשיר משחק שבו מופעלת תכונת הריקול ללא פרופיל.
- המשחק מתעד טוקן Recall ללא פרופיל, כפי שמתואר במאמר שמירת טוקן ופרסונה.
- המשתמש פותח את אותו משחק במכשיר אחר שבו מוגדר אותו חשבון.
- ערכת ה-SDK של Games מפעילה את יצירת הפרופיל. המשתמש יכול לבדוק ולדחות אסימוני Recall שנשמרו בעבר. בשלב הזה המשתמש יוצר פרופיל PGS.
- האימות האוטומטי של הפלטפורמה ב-PGS מסתיים, והמשחק מקבל את סטטוס האימות.
- המשחק מאחזר את אסימוני הזיכרון של המשתמש כרגיל.
השלבים הבאים
כדי לשלב את Recall API עם הלקוח ועם שרת המשחקים, פועלים לפי ההנחיות האלה.