Autentikasi platform untuk game Android

Untuk mengakses fungsi Layanan game Google Play, game Anda harus menyediakan akun pemain yang diautentikasi. Dokumentasi ini menjelaskan cara menerapkan pengalaman autentikasi yang lancar di game Anda.

SDK Layanan game Play v2 menghadirkan sejumlah peningkatan yang meningkatkan jumlah pengguna yang diautentikasi ke game Anda, dan mempermudah pengembangan:

  • Peningkatan untuk pengguna:
    • Setelah memilih akun default, pengguna akan diautentikasi tanpa perlu berinteraksi dengan perintah.
    • Pengguna tidak perlu lagi mendownload Aplikasi Play Game untuk mengautentikasi dengan Layanan game Play atau membuat akun baru.
    • Pengguna kini dapat mengelola akun Layanan game Play untuk beberapa game dari satu halaman.
  • Peningkatan untuk developer:
  • Kode klien tidak lagi perlu menangani alur autentikasi atau logout, karena login otomatis dipicu saat game dimulai, dan pengelolaan akun ditangani di setelan OS.

Integrasi klien baru

Bagian ini menunjukkan cara melakukan integrasi klien baru dengan Login Layanan game Play v2.

Menambahkan dependensi

Tambahkan dependensi SDK Layanan game Play ke file build.gradle level root aplikasi Anda. Jika menggunakan Gradle, Anda dapat menambahkan atau mengupdate dependensi sebagai berikut:

dependencies {
 implementation "com.google.android.gms:play-services-games-v2:+"
}

Menentukan project ID

Untuk menambahkan project ID SDK Layanan game Play ke aplikasi Anda, selesaikan langkah-langkah berikut:

  1. Di file AndroidManifest.xml aplikasi Anda, tambahkan elemen dan atribut <meta-data> berikut ke elemen <application>:

    <manifest>
      <application>
        <meta-data android:name="com.google.android.gms.games.APP_ID"
                   android:value="@string/game_services_project_id"/>
      </application>
    </manifest>
    

    Tentukan referensi resource String @string/game_services_project_id menggunakan project ID layanan Game milik game Anda sebagai nilai. Project ID layanan Game Anda dapat ditemukan pada bagian nama game di halaman Konfigurasi di Konsol Google Play.

  2. Dalam file res/values/strings.xml Anda, tambahkan referensi resource string dan tetapkan project ID sebagai nilai. Di Konsol Google Play, Anda dapat menemukan project ID dengan nama game Anda di halaman Konfigurasi. Contoh:

    <!-- 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>
    

Menginisialisasi SDK

Lakukan inisialisasi SDK Play Game di callback onCreate(..) dari class Application Anda.

import com.google.android.gms.games.PlayGamesSdk;

...

@Override
public void onCreate(){
  super.onCreate();
  PlayGamesSdk.initialize(this);
}

Mendapatkan hasil autentikasi

Saat diluncurkan, game akan selalu mencoba mengautentikasi pengguna. Untuk mengautentikasi pengguna, Anda harus memverifikasi bahwa pengguna berhasil diautentikasi, lalu mendapatkan ID Pemainnya.

Untuk memverifikasi upaya autentikasi, panggil GamesSignInClient.isAuthenticated() dan gunakan addOnCompleteListener untuk mengambil hasilnya. Contoh:

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().
  }
});

Jika pengguna memilih untuk tidak diautentikasi saat game diluncurkan, sebaiknya Anda terus menampilkan tombol dengan ikon Play Game atau menampilkan layar login kepada pengguna yang memiliki tombol dengan ikon Play Game sebagai salah satu opsi autentikasi, dan mencoba mengautentikasi pengguna lagi dengan memanggil GamesSignInClient.signIn() jika pengguna menekan tombol. Setelah memverifikasi bahwa pengguna telah diautentikasi, Anda dapat mengambil ID Pemain untuk mengidentifikasi pengguna. Contoh:

PlayGames.getPlayersClient(activity).getCurrentPlayer().addOnCompleteListener(mTask -> {
    // Get PlayerID with mTask.getResult().getPlayerId()
  }
);