Bu kılavuzda, istemci kodunuzu Play Games Hizmetleri'nden nasıl taşıyacağınız açıklanmaktadır. v1'den v2'ye.
Yeni SDK, oturum açma başarısını artırmak için dört ana değişiklik içerir. şunları göz önünde bulundurmalısınız:
- Oyununuz kullanıma sunulduğunda oturum açma otomatik olarak tetiklenir. Şunun yerine:
oturum açma işlemi için GoogleSignIn SDK'sının
GoogleSignInClient
özelliğini kullanarak otomatik sorgunun sonucunu almak içinGamesSignInClient.isAuthenticated()
oturum açma girişiminde bulunabilirsiniz. - Client Factory sınıflarının artık
GoogleSignInAccount
nesnesine ihtiyacı olmayacak başarılı oldu. Ek OAuth kapsamları istenemez (GAMES_LITE
otomatik olarak istenir). - Kimlik doğrulama jetonları artık
Play Oyun Hizmetleri'nde
GamesSignInClient.requestServerSideAccess()
SDK'dır. - Oturumu kapatma yöntemi kaldırıldığından artık oyun içi öğe istemeyeceğiz düğmesini tıklayın.
Ayrıca, oyununuza otomatik olarak eklenen hesaplar nedeniyle kullanıcı oturum açmalarını sağlayabilir. Bu nedenle, kota yönetimi ile optimize edebilirsiniz. kotası da dahildir.
Yeni SDK Maven deposunu hedefleme
Gradle derleme sistemini kullanıyorsanız bunu,
com.google.android.gms:play-services-games-v2:+
yapısına bağımlılığı
modülünüzün build.gradle
dosyasına ekleyin. Örnek:
dependencies {
implementation "com.google.android.gms:play-services-games-v2:+"
}
SDK'yı başlatma
onCreate(..)
Application
sınıf. Örnek:
import com.google.android.gms.games.PlayGamesSdk;
...
@Override
public void onCreate(){
super.onCreate();
PlayGamesSdk.initialize(this);
}
Oturum açma ve oturum kapatma çağrılarını kaldırma
Ekstra kapsam belirtmezseniz kullanım alanınızı taşıma basittir.
GoogleSignIn API'yi kullanarak oturum açma çağrılarını kaldırın. Oturum açıldığında her zaman oyun lansmanında yapılmalıdır. Bunun yerine, projenizin
GamesSignInClient.isAuthenticated()
ile otomatik oturum açma denemesi.GamesSignInClient gamesSignInClient = PlayGames.getGamesSignInClient(getActivity()); gamesSignInClient.isAuthenticated().addOnCompleteListener(isAuthenticatedTask -> { boolean isAuthenticated = (isAuthenticatedTask.isSuccessful() && isAuthenticatedTask.getResult().isAuthenticated()); if (isAuthenticated) { // Continue with Play Games Services } else { // Disable your integration with Play Games Services or show a // login button to ask players to sign-in. Clicking it should // call GamesSignInClient.signIn(). } });
Hesap yönetimi artık etkin olduğundan, oturumu kapatmak için tüm aramaları kaldırın Google Play Games.
Oyuncu başarıyla oturum açtıysa Play Games oturum açma düğmesini kaldırın tespit edebilirsiniz. Kullanıcı oyun başlatıldığında oturum açmamayı seçerse isteğe bağlı olarak Play Games simgesini içeren bir düğmeyi göstermeye devam edebilir ve
GamesSignInClient.signIn()
ile giriş işlemini tetikleyin.Kullanıcının oturum açtığını doğruladıktan sonra, kullanıcıyı tanımlamak için oynatıcı kimliğini alabilirsiniz.
PlayGames.getPlayersClient(activity).getCurrentPlayer().addOnCompleteListener(mTask -> { // Get PlayerID with mTask.getResult().getPlayerId() } );
Artık kullanılmıyorsa GoogleSignIn API'ye olan bağımlılığınızı kaldırın.
Müşteri sınıf adlarını güncelle
İstemci oluştururken (ör. LeaderboardsClient
veya AchievementsClient
) Games.getFooClient()
yerine PlayGames.getFooClient()
kullanın.
Sunucu tarafı erişim iste
Sunucu tarafı erişim isteğinde bulunurken GoogleSignInAccount.getServerAuthCode()
yerine GamesSignInClient.requestServerSideAccess()
kullanın.
GamesSignInClient gamesSignInClient = PlayGames.getGamesSignInClient(this);
gamesSignInClient
.requestServerSideAccess(OAUTH_2_WEB_CLIENT_ID,
/*forceRefreshToken=*/ false)
.addOnCompleteListener( task -> {
if (task.isSuccessful()) {
String serverAuthToken = task.getResult();
// Send authentication code to the backend game server to be
// exchanged for an access token and used to verify the
// player with the Play Games Services REST APIs.
} else {
// Failed to retrieve authentication code.
}
});
Ek kapsamları kaldır
Play Games Hizmetleri v2 ile ek kapsam talebinde bulunamazsınız. Şu durumda: hâlâ ek kapsam istemeniz gerekiyorsa Google ile Oturum Açma SDK'sı ve Play Games Hizmetleri'nin yanı sıra.
GoogleApiClient'tan taşıma
Oyununuz, mevcut entegrasyonlar için
Play Games Hizmetleri SDK'sının GoogleApiClient API varyasyonu. Bu
2017'nin sonlarında kullanımdan kaldırıldı
ve "bağlantısız" ile değiştirildi kullanabilirsiniz. Taşıma işlemi için
"Bağlantısız" eşdeğerine sahip GoogleApiClient
sınıf. Bu durumda ayrıca,
oyununuzu v1'den v2'ye taşımak için bu sayfadaki yönergeleri uygulamanız gerekir.
Yaygın sınıfların bir eşlemesi aşağıda verilmiştir:
com.google.android.gms.games.achievement.Achievements ->
com.google.android.gms.games.AchievementsClient
com.google.android.gms.games.leaderboard.Leaderboard ->
com.google.android.gms.games.LeaderboardsClient
com.google.android.gms.games.snapshot.Snapshots ->
com.google.android.gms.games.SnapshotsClient
com.google.android.gms.games.stats.PlayerStats ->
com.google.android.gms.games.PlayerStatsClient
com.google.android.gms.games.Players ->
com.google.android.gms.games.PlayersClient
com.google.android.gms.games.GamesStatusCodes ->
com.google.android.gms.games.GamesClientStatusCodes