Recall API, Google sunucularında Recall jetonları depolayarak oyunların Google Play Games Hizmetleri (PGS) kullanıcıları ile oyun içi hesapları arasındaki bağlantıları yönetmesine olanak tanır. Recall API'nin nasıl kullanılabileceğine dair örnek bir senaryoyu aşağıda bulabilirsiniz.
Bir kullanıcı, geliştiricinin kullanıcı ilerlemesini izlemek için kimlik sistemine sahip olduğu bir oyun oynuyor ve kullanıcıların oyununa giriş yapmasını sağlamak için PGS'yi diğer kimlik doğrulama yöntemleriyle birlikte kullanıyor. Bu örnekte, bir kullanıcı PGS hesabında (Laura) oturum açıyor ve geliştiricinin Racer94 adlı kimlik sistemiyle oyun içi hesap oluşturuyor. Kullanıcı oyunu oynarken geliştiricinin oyun sunucusu, kullanıcının ilerleme durumunu senkronize eder.
Ayrıca geliştirici, Google ile birlikte bir geri çağırma jetonu kaydeder. Bu jeton, kullanıcının oyun içi hesabıyla eşleşir. Google, bu geri çağırma jetonunu kullanıcının PGS profiline karşı otomatik olarak depolar.
Kullanıcı, oyunu ilk kez PC'de GPG'de oynamaya karar verir. Kullanıcının PGS hesabı ile otomatik olarak oturum açılır ve oyun istemcisi, bu PGS kullanıcısı için ilerleme olup olmadığını kontrol eder. Ardından oyun sunucusu, bu PGS hesabı için jeton olup olmadığını görmek üzere Google'a sorgu gönderir. Bu nedenle Google, geri çağırma jetonunu geri gönderir ve oyun sunucusu bu jetonu kullanarak kullanıcının ilişkili hesabı Racer94'ü bulup ilerleme durumunu geri yükler. PGS ile oturum açma sorunsuz bir deneyim olduğundan kullanıcının ilerleme durumu, kullanıcı adı veya şifre girmesine gerek kalmadan uygulama tarafından geri yüklenir. Ayrıca geliştirici, mevcut kimlik sistemiyle PGS oturum açma özelliğini kullanabilir ve oyuncu ilerlemesi ile PGS hesabı arasındaki bağlantıyı depolamak için Google'ı kullanabilir.
Daha önce verilen örnekte de görüldüğü gibi, Recall API tarafından gerçekleştirilen iki ana işlem vardır:
Kullanıcı, oyun içi hesaplardan biriyle giriş yaptığında jetonu Google'da saklama.
Kullanıcının oyun içi hesaplarını geri yüklemek için jetonu alma.
Recall API, kardinalite kısıtlamalarını uygulamak için geri çağırma jetonlarına ek olarak oyun içi hesaba karşılık gelen kararlı bir tanımlayıcı (karakter olarak bilinir) da gerektirir. Karakter, kullanıcının oyun içi hesabını geliştiricinin kimlik sisteminde temsil eden etiket, hatırlama jetonu ise kullanıcının oyun içi hesabını oyuna geri yüklemek için kullanılan anahtar olarak düşünülebilir. Karakter ve jeton değerleri farklı PGS projelerinde yeniden kullanılmamalıdır. Ayrıca, geri çağırma jetonları zaman içinde değişebilse de kullanıcının oyun içi hesabına göre karakterin sabit olması gerekir.
Kardinalite kuralları
Geri Çağırma API'si, PGS profilleri ile oyun içi hesaplar arasında 1:1 ilişkisi (kardinalite kuralları olarak adlandırılır) uygular. Bu ilişkide bir karakter yalnızca bir PGS profiline, bir PGS profili ise yalnızca bir karaktere bağlanabilir. Hatırlatma jetonları zaman içinde değişebileceğinden, karakter, oyun içi hesap için sabit bir tanımlayıcı olarak kullanılır.
Bir PGS profiline bağlı karakter, zaman içinde (farklı oyun içi hesaplar PGS profiline bağlandıkça) değişebilir.
Geri çağırma jetonlarını depolama ve alma ile ilgili teknik akışlar
Bu bölümde, hatırlatma jetonları depolanırken ve alınırken oyun istemcisi ile sunucular arasındaki teknik akış Google sunucularıyla birlikte ele alınmaktadır.
1. adım: PGS kullanıcısının oturumunu açın ve oturum kimliğini alın
Oyun, PGS SDK'sını başlatır ve kullanıcının PGS ile oturum açmasını sağlamaya çalışır.
Kullanıcının oturum açtığını varsayarak oyun istemcisinde Games SDK'dan bir oturum kimliği ve Google'ın OAuth arka ucundan bir OAuth 2.0 jetonu isteyin. Google Games arka ucuyla iletişim kurmak için oturum kimliği ve OAuth 2.0 jetonları kullanılır.
2. adım: Kullanılabilir geri çağırma jetonlarını alın
PGS kullanıcısının hesabıyla ilişkili herhangi bir geri çağırma jetonu isteğinde bulunma Jeton varsa 3a adımına geçin ve ilerlemeyi geri yükleyin. Aksi takdirde, bu yeni bir kullanıcıysa ve jetonu yoksa 3b adımına geçin ve yeni bir jeton saklayın.
3a adımı: Jeton varsa ilerlemeyi geri yükleyin
Jeton varsa jetonu alıp şifresini çözün ve kullanıcı verilerini geri yükleyin.
3b adımı: Jeton yoksa jeton saklayın
Jeton bulunmadığı için ilerleme durumu geri yüklenmez. Kullanıcı, geliştiricinin kimlik sistemini kullanarak oturum açar veya mevcut değilse yeni bir hesap oluşturur. Not: Bu, PGS ile oturum açma (zaten yapılmış olan) değil, PGS dışındaki bir geliştiricinin kimlik sistemiyle oturum açmadır.
Kullanıcının oyun içi hesabını kodlayan şifrelenmiş bir Recall jetonu oluşturun ve oturum kimliği ile OAuth 2.0 jetonuyla birlikte Google'a gönderin. Bu noktada Google, gönderilen geri çağırma jetonu ile oyuncunun PGS hesabı arasında bir ilişki oluşturur.
PGS profili olmayan kullanıcılar için akışlar
Henüz PGS profili oluşturmamış bir kullanıcının geri çağırma jetonlarını profilsiz modu kullanarak depolayabilirsiniz. Ancak, dikkat edilmesi gereken iki önemli nokta vardır:
- PGS profili olmayan bir kullanıcı için jeton alamazsınız. Kullanıcı, Play Games Hizmetleri ile oyununuza ikinci bir cihazda giriş yapmaya çalıştığında otomatik olarak profil oluşturma istemi gösterilir.
- Aşağıdaki öğeleri açıklayan uygun bir bildirime sahip olduğunuzdan ve uygun son kullanıcı iznini aldığınızdan emin olmak için ek yönergeleri uygulamanız gerekir:
- Play Games hesap bağlama özelliğini etkinleştirmek için verileri Google ile paylaşmanız.
- Bu paylaşımı yönetmek için Play Games ayarları gibi ayarların kullanılabilirliği.
- Bu tür verilerin Google Gizlilik Politikası uyarınca işlenmesi.
Jeton ve karakter çiftini saklama
- PGS profili olmayan bir kullanıcı, profilsiz geri çağırma özelliğinin etkin olduğu bir oyunu açar.
- Games SDK, kullanıcının PGS profili olmadığı için başarısız olan otomatik bir oturum açma işlemi tetikler.
- Oyun SDK'sı, kullanıcıya oyunun Google ile entegrasyonu olduğunu bildiren bir snackbar gösterir. Bu snackbar üzerinde işlem yapılabilir. Kullanıcı, profil oluşturulana kadar hatırlamayı devre dışı bırakabilir.
- Oyun, geri çağırma erişimi istiyor. PGS'nin, cihazda PGS profilleri olduğunda veya cihazda Google Hesabı olmadığında geri çağırma erişim isteklerini reddettiğini unutmayın. Bu durumda, oyun PGS kullanılmadan devam etmelidir.
- Kullanıcı, oyun içi bir hesapla giriş yaptıktan sonra oyun, kullanıcı için oyun içi hesabına karşılık gelen bir jeton ve karakter çifti oluşturur. Oyun, bu çifti Google ile birlikte depolar. Kullanıcı, oyun içindeki diğer hesaplarda oturum açarsa oyun daha sonra daha fazla jeton depolayabilir.
Yeni bir cihazda oyun başlatma
- PGS profili olmayan bir kullanıcı, profilsiz geri çağırma özelliğinin etkinleştirildiği bir oyunu cihazda açar.
- Oyun, Jeton ve karakter çiftini depolama bölümünde açıklandığı gibi profilsiz bir geri çağırma jetonu kaydeder.
- Kullanıcı, aynı hesap kurulumuna sahip farklı bir cihazda aynı oyunu açar.
- Games SDK, profil oluşturmayı tetikler. Kullanıcı, daha önce depolanmış geri çağırma jetonlarını inceleyip reddedebilir. Kullanıcı bu sırada bir PGS profili oluşturur.
- PGS'de otomatik oturum açma işlemi tamamlanır ve oyun, kimliği doğrulanmış durumu alır.
- Oyun, kullanıcının Recall jetonlarını her zamanki gibi alır.
Sonraki adımlar
Recall API'yi istemciniz ve oyun sunucunuzla entegre etmek için bu yönergeleri uygulayın.