כדי לגשת לפונקציונליות של Google Play Games Services, המשחק צריך לספק את החשבון של השחקן המאומת. במסמכי התיעוד האלה מוסבר איך להטמיע חוויית אימות חלקה במשחק.
ה-SDK של Play Games Services בגרסה 2 כולל מספר שיפורים שמגדילים את מספר המשתמשים שמאומתים במשחק שלכם, ומקלים על הפיתוח:
- שיפורים למשתמשים:
- אחרי שבוחרים חשבון ברירת מחדל, המשתמשים מאומתים בלי צורך באינטראקציה עם בקשה.
- המשתמשים כבר לא צריכים להוריד את אפליקציית Play Games כדי לבצע אימות באמצעות Play Games Services או כדי ליצור חשבון חדש.
- עכשיו המשתמשים יכולים לנהל את החשבונות שלהם ב-Play Games Services בכמה משחקים מדף אחד.
- שיפורים למפתחים:
- קוד הלקוח כבר לא צריך לטפל בתהליך האימות או בתהליך היציאה, כי הכניסה מופעלת אוטומטית כשהמשחק מתחיל, וניהול החשבון מתבצע בהגדרות של מערכת ההפעלה.
שילוב לקוח חדש
בקטע הזה מוסבר איך לבצע שילוב חדש של לקוח עם Play Games Services Sign In v2.
הוספת יחסי התלות
מוסיפים את התלות ב-SDK של Play Games Services לקובץ build.gradle
ברמת הבסיס של האפליקציה. אם משתמשים ב-Gradle, אפשר להוסיף או לעדכן את יחסי התלות באופן הבא:
dependencies {
implementation "com.google.android.gms:play-services-games-v2:+"
}
הגדרת מזהה הפרויקט
כדי להוסיף את מזהה הפרויקט של Play Games Services SDK לאפליקציה, מבצעים את השלבים הבאים:
בקובץ
AndroidManifest.xml
של האפליקציה, מוסיפים את הרכיב<meta-data>
והמאפיינים הבאים לרכיב<application>
:<manifest> <application> <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/game_services_project_id"/> </application> </manifest>
מגדירים את ההפניה למשאב המחרוזת
@string/game_services_project_id
באמצעות מזהה פרויקט שירותי המשחקים של המשחק כערך. מזהה הפרויקט של Games Services מופיע מתחת לשם המשחק בדף הגדרה ב-Google Play Console.בקובץ
res/values/strings.xml
, מוסיפים הפניה למשאב מחרוזת ומגדירים את מזהה הפרויקט כערך. ב-Google Play Console, מזהה הפרויקט מופיע מתחת לשם המשחק בדף הגדרות. לדוגמה:<!-- res/values/strings.xml --> <resources> <!-- Replace 0000000000 with your game’s project id. Example value shown above. --> <string translatable="false" name="game_services_project_id"> 0000000000 </string> </resources>
אתחול ה-SDK
מפעילים את Play Games SDK ב-callback onCreate(..)
של המחלקה Application
.
import com.google.android.gms.games.PlayGamesSdk;
...
@Override
public void onCreate(){
super.onCreate();
PlayGamesSdk.initialize(this);
}
קבלת תוצאת האימות
כשהמשחק יופעל, תמיד יתבצע ניסיון לאמת את המשתמש. כדי לאמת את המשתמש, צריך לוודא שהמשתמש אומת בהצלחה ואז לקבל את מזהה השחקן שלו.
כדי לאמת את ניסיון האימות, מתקשרים אל GamesSignInClient.isAuthenticated()
ומשתמשים ב-addOnCompleteListener
כדי לאחזר את התוצאות. לדוגמה:
GamesSignInClient gamesSignInClient = PlayGames.getGamesSignInClient(getActivity());
gamesSignInClient.isAuthenticated().addOnCompleteListener(isAuthenticatedTask -> {
boolean isAuthenticated =
(isAuthenticatedTask.isSuccessful() &&
isAuthenticatedTask.getResult().isAuthenticated());
if (isAuthenticated) {
// Continue with Play Games Services
} else {
// Show a sign-in button to ask players to authenticate. Clicking it should
// call GamesSignInClient.signIn().
}
});
אם המשתמש בוחר לא לבצע אימות כשהמשחק מופעל, מומלץ להמשיך להציג לחצן עם הסמל של Play Games או להציג למשתמש מסך כניסה עם לחצן עם הסמל של Play Games כאחת מאפשרויות האימות, ולנסות לאמת את המשתמש שוב על ידי קריאה ל-GamesSignInClient.signIn()
אם המשתמש לוחץ על הלחצן.
אחרי שמוודאים שהמשתמש מאומת, אפשר לאחזר את מזהה השחקן כדי לזהות את המשתמש. לדוגמה:
PlayGames.getPlayersClient(activity).getCurrentPlayer().addOnCompleteListener(mTask -> {
// Get PlayerID with mTask.getResult().getPlayerId()
}
);