כדי לגשת לפונקציונליות של Google Play Games Services, המשחק שלכם צריך לספק את החשבון של השחקן המאומת. במסמכי התיעוד האלה מוסבר איך להטמיע במשחק חוויית אימות חלקה.
Play Games Services v2 SDK כולל מספר שיפורים שמגדילים את מספר המשתמשים שמאומתים במשחק שלכם, ומקלים על הפיתוח:
- שיפורים למשתמשים:
- אחרי שבוחרים חשבון ברירת מחדל, המשתמשים מאומתים בלי שצריך להציג להם בקשה.
- המשתמשים כבר לא צריכים להוריד את אפליקציית Play Games כדי לבצע אימות באמצעות Play Games Services או ליצור חשבון חדש.
- עכשיו המשתמשים יכולים לנהל את החשבונות שלהם ב-Play Games Services בכמה משחקים מדף אחד.
- שיפורים למפתחים:
- קוד הלקוח כבר לא צריך לטפל בתהליך האימות או בתהליך היציאה מהחשבון, כי הכניסה מופעלת אוטומטית כשהמשחק מתחיל, וניהול החשבון מתבצע בהגדרות של מערכת ההפעלה.
שילוב לקוח חדש
בקטע הזה מוסבר איך לבצע שילוב חדש של לקוח עם Play Games Services Sign In v2.
הוספת התלות
מוסיפים את התלות ב-Play Games Services SDK לקובץ 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()
}
);