Bir Android oyununda kullanıcıların oturum açmak için Google Play Games hizmetlerini kullanabilirsiniz
geliştirmeyi öğreneceksiniz. Google Play Games Hizmetleri'nde oturum açmak için şununla oturum açın:
Firebase için öncelikle Google Play Games'de oturum açın ve
OAuth 2.0 yetkilendirme kodu ekleyin. Ardından,
Firebase kimlik bilgisi oluşturmak için PlayGamesAuthProvider
Firebase ile kimlik doğrulama.
Başlamadan önce
Unity projenizi oluşturun
Firebase yapılandırma dosyasını ve Firebase Unity SDK'sını Unity projenize ekleyin aşağıdaki şekilde açıklandığı gibi Firebase'i Unity projenize ekleyin. Android için talimatları uygulayın.
FirebaseAuth.unitypackage
dosyasını içe aktardığınızdan emin olun.Unity Editor'da, Build Settings (Derleme Ayarları) > Oynatıcı Ayarları > Diğer Ayarlar, oyununuzun Android paket adını belirler.
Ardından, Derleme Ayarları > Oynatıcı Ayarları > Yayınlama Ayarları, Android cihazınızı imzalamak için kullanılacak bir anahtar deposu ve anahtar seçin veya oluşturun paketinden yararlanın. Play Games'te oturum açma özelliğinin çalışması için APK'nızın imzalanmış olması gerekir bu gereklilik yalnızca yayıncılık için değil, ayrıca geliştirme sürecinde gösterir.
Firebase projenizi oluşturun
Firebase konsolunda Firebase projesine gidin oluşturduğunuz bir dosyadır.
Oyununuzun SHA-1 parmak izini Ayarlar sayfası Firebase konsolu içinde, Unity'de ayarladığınız anahtarı kullanarak.
keytool
komutuyla anahtarınızın SHA-1 dijital parmak izini alabilirsiniz:keytool -exportcert -list -v \ -alias YOUR-KEY-NAME -keystore PATH-TO-KEYSTORE
Alternatif olarak, gradle
signingReport
komutu:gradlew signingReport
APK'nız, geliştirme sırasında da dahil olmak üzere bu anahtarla imzalanmalıdır.
Google Play Games sağlayıcısını oturum açma sağlayıcısı olarak etkinleştir:
Firebase konsolunda Authentication bölümünü tıklayın.
Projenizin web sunucusu istemci kimliğini ve istemcisini oluşturun ve edinin sır:
Oturum açma yöntemi sekmesinde, Google ile oturum açma özelliğini etkinleştirin sağlar.
Google ile oturum açma bilgilerinden web sunucusu istemci kimliğini ve gizli anahtarı kopyalayın sağlar.
Oturum açma yöntemi sekmesinde Play Games hizmetini etkinleştirin oturum açma sağlayıcısını seçin ve projenizin web sunucusu istemci kimliğini ve istemci sırrı (gizli anahtarı) içerir.
Play Games services uygulamasını Firebase uygulama bilgilerinizle yapılandırın
Google Play Konsolu, Google Play uygulamanızı açın veya bir uygulama oluşturun.
Büyüme bölümünde, Play Games services > Kurulum ve Yönetim > Yapılandırma'yı tıklayın.
Evet, oyunumda zaten Google API'leri kullanılıyor'u tıklayın, Firebase'inizi seçin projeyi seçin ve Kullan'ı tıklayın.
Play Games services yapılandırma sayfasında şunu tıklayın: Kimlik Bilgisi Ekle.
- Oyun sunucusu türünü seçin.
- OAuth istemcisi alanında projenizin web istemcisi kimliğini seçin. Bunun, etkinleştirdiğiniz istemci kimliği ile aynı olduğundan emin olun. Play Games oturum açma.
- Yaptığınız değişiklikleri kaydedin.
Play Games services yapılandırma sayfasındayken Tekrar Kimlik Bilgisi Ekleyin.
- Android türünü seçin.
- OAuth istemcisi alanında projenizin Android istemci kimliğini seçin. (Android istemci kimliğinizi görmüyorsanız oyununuzun Firebase konsolunda SHA-1 parmak izi.)
- Yaptığınız değişiklikleri kaydedin.
Etkinlikler, Başarılar ve Skor Tabloları sayfalarında, oluşturduğunuz herhangi bir Oyununuzla kullanmak istediğiniz Play Games kaynak (yoksa) hemen kullanmak istiyorsanız bir yer tutucu girişi oluşturabilirsiniz). Ardından, Etkinlikler, Başarılar veya Skor tabloları sayfalarından herhangi birinde Kaynakları alın ve Android kaynak snippet'ini bir yere kopyalayın. yardımcı olur. Google Play Games services özelliğini ayarlamak için snippet'e ihtiyacınız olacak. eklentisidir.
Kaynak snippet'i aşağıdaki örneğe benzer:
<?xml version="1.0" encoding="utf-8"?> <!-- Google Play game services IDs. Save this file as res/values/games-ids.xml in your project. --> <resources> <!-- app_id --> <string name="app_id" translatable="false">123456789000</string> <!-- package_name --> <string name="package_name" translatable="false">com.example.game</string> <!-- event Wiped Raid --> <string name="event_wiped_raid" translatable="false">CgkIpKjv1a4PEAIYBA</string> </resources>
Test kullanıcıları sayfasında, teste tabi tutulması gereken tüm kullanıcıların e-posta adreslerini Google Play Geliştirici Konsolu'nda yayınlamadan önce oyununuzda oturum Play Store.
Play Games oturum açma özelliğini oyununuza entegre etme
En son sürümünü indirin Unity için Play Games eklentisi dosyayı çıkartın.
Eklentinin Unity paketini Unity projenize aktarın. Daha fazla Sürüm arşivinin
current-build
dizinindeki Unity paketi.Play Games eklentisini ayarlayın:
- Pencere > Google Play Oyunlar > Kurulum > Android Kurulumu'nu Android Yapılandırması ekranı.
- Play Console'dan aldığınız Android kaynakları snippet'ini Kaynak Tanımı alanına girin.
- Etkinleştirirken sağladığınız web sunucusu istemci kimliğinizi yapıştırın Firebase konsolunda, İstemci Kimliği'ne giderek Play Games oturum açma girin.
- Kurulum'u tıklayın.
Oyununuzda,
RequestServerAuthCode
ile bir Play Games istemcisini yapılandırın ayar etkin:using GooglePlayGames; using GooglePlayGames.BasicApi; using UnityEngine.SocialPlatforms; using System.Threading.Tasks; PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder() .RequestServerAuthCode(false /* Don't force refresh */) .Build(); PlayGamesPlatform.InitializeInstance(config); PlayGamesPlatform.Activate();
Ardından, bir oyuncu Play Games'de oturum açmayı seçtiğinde
Social.localUser.Authenticate()
:Social.localUser.Authenticate((bool success) => { // handle success or failure });
Firebase ile kimlik doğrulama
Oyununuza Play Games oturum açma bilgilerini ekledikten sonra, Play Games Hizmetleri'ne gidin.
Oyuncu, Play Games'i kullanarak başarıyla oturum açtıktan sonra, devam işleyicisi, oyuncunun hesabı için bir yetkilendirme kodu al:
Social.localUser.Authenticate((bool success) => { if (success) { authCode = PlayGamesPlatform.Instance.GetServerAuthCode(); } });
Ardından, Play Games hizmetlerindeki yetkilendirme kodunu Firebase ile değiştirin ve oynatıcının kimliğini doğrulamak için Firebase kimlik bilgisini kullanın:
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance; Firebase.Auth.Credential credential = Firebase.Auth.PlayGamesAuthProvider.GetCredential(authCode); auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync encountered an error: " + task.Exception); return; } Firebase.Auth.AuthResult result = task.Result; Debug.LogFormat("User signed in successfully: {0} ({1})", result.User.DisplayName, result.User.UserId); });
Sonraki adımlar
Kullanıcı ilk kez oturum açtığında yeni bir kullanıcı hesabı oluşturulur ve kendi Play Games kimliklerine bağladıkları hesaptır. Bu yeni hesap, şu bilgilerin bir parçası olarak saklanır: ve Firebase'deki tüm uygulamalarda bir kullanıcıyı tanımlamak için kullanılabilir. belirler.
Oyununuzda, kullanıcının Firebase UID'sini şuradan edinebilirsiniz:
Firebase.Auth.FirebaseUser
nesne:
Firebase.Auth.FirebaseUser user = auth.CurrentUser;
if (user != null && user.IsValid()) {
string playerName = user.DisplayName;
// The user's Id, unique to the Firebase project.
// Do NOT use this value to authenticate with your backend server, if you
// have one; use User.TokenAsync() instead.
string uid = user.UserId;
}
Firebase Realtime Database ve Cloud Storage Güvenlik Kurallarınızda şunları alabilirsiniz:
oturum açmış kullanıcının auth
değişkenindeki benzersiz kullanıcı kimliğini kullanarak
Kullanıcının hangi verilere erişebileceğini kontrol etmek
Kullanıcının Play Games oyuncu bilgilerini almak veya Play Games hizmetlerine erişmek için: Play Games eklentisi tarafından sağlanan API'leri kullanmalıdır.
Bir kullanıcının oturumunu kapatmak için SignOut()
numaralı telefonu arayın:
auth.SignOut();