ログイン

Play ゲームサービスのログインを使用すると、プレーヤーのゲーム ID を取得できます。これは、Android プレーヤー用のプラットフォーム レベルのゲームに固有の ID です。この ID により、ゲームとプレーヤーとの関係を構築できます。プレーヤーは、代替の一元管理システムよりも、この ID によるログインを進んで行います。

また、ログインにより、クラウド保存システムの鍵として使用できる強力で一貫した ID を使用できます。クラウド保存は高く評価されます。これにより、プレーヤーは次のことを行えます。

  • デバイスを変更、リセットした場合に、中断したところから再開する
  • 複数のデバイス(別のスマートフォンや Chromebook など)でゲームをプレイする
  • ゲームをアンインストールして後で再インストールする

Play ゲームサービス ID は、独自のクラウド保存ソリューションの鍵として使用できます。または、無料の保存済みゲームサービスを使用することもできます。

Play Games Services(PGS)は、プレーヤーを簡単にログインできる自動ログインと、ワンクリック プロセスの手動ログインをサポートしています。このドキュメントでは、これらのさまざまなログイン方法について説明します。

推奨されるログインフロー

プレーヤーがゲームに正常にログインできるようにするには、次のログインフローを使用します。

  1. ゲームの起動シーケンス中に、自動ログインを使用してプレーヤーを自動的にログインさせます。
  2. 自動ログインが機能せず、ユーザーのデバイスがオンラインの場合は、手動ログインを試します。
  3. 手動ログインが拒否された場合は、ユーザーの選択を記憶し、手動ログインを再度表示せず、起動時に自動ログインを試行し続けます。

また、ユーザーが見つけやすい専用のボタンを使用して、Play Games サービス アカウントでゲームにログインできるようにする必要があります。

自動ログイン

自動ログインを使用すると、ユーザーはゲームに自動的にログインできます。ゲームがユーザーにログインをリクエストし、(Google Play Games アプリで)自動ログイン設定が有効になっている場合は、ユーザーの PGS ID の認証情報を受け取り、ユーザーに PGS のログイン操作画面が表示されます。

自動ログインは、ユーザーが制御できる設定です。ユーザーは、すべてのゲームに自動的にログインすることを選択できます。または、毎回ログインを求める画面が表示されるように選択することもできます。

自動ログイン

手動でログイン

ユーザーがゲームに自動的にログインしない場合は、手動でログインするよう依頼できます。ゲームの上部に表示されるダイアログ ボックスから、ワンクリックでログインできます。

手動でログイン

正しいログイン エクスペリエンスを実現するため PGS ポップアップを許可する

PGS を使用する場合は、ユーザーがログインしていることを認識する必要があります。これは、PGS ログイン エクスペリエンスを表示することで行われます。

ログイン エクスペリエンスを表示するには、ゲームの起動時に GamesClient クラスの setViewForPopups() メソッドを呼び出します。これは、適切なユーザー エクスペリエンスを実現するために重要です。

OAuth スコープと PGS

PGS は OAuth システムを使用して、ユーザーがゲームからアカウントにアクセスできるようにします。OAuth スコープは、デベロッパーがリクエストできる権限です。これらの権限が付与されると、ゲームはユーザーに代わって特定の API を呼び出すことができ、また、ユーザーの Google アカウントの特定の部分にアクセスできるようになります。

PGS にはゲームに固有のスコープ(games-lite)があり、ゲームが保存済みゲーム機能を使用している場合は、別のスコープ(drive.appdata)に依存します。保存済みゲーム機能では、ユーザーの Google ドライブ アカウントにアクセスできます。このアカウントには、ゲームのデータが保存されています。

ゲームは、ユーザーに優れたゲーム エクスペリエンスを提供するために必要なスコープをリクエストできます。ゲームは、必要なすべてのスコープを 1 つのバンドルでリクエストできるため、Google アカウントへのアクセス リクエストの数を制限できます。ただし、この方法には大きな欠点があります。PGS 固有のスコープ以外をリクエストすると、自動ログインは成功しません。自動ログインは、プレーヤーにゲームにログインしてもらう最善の方法です。

段階的なスコープ リクエストを使用することをおすすめします。ゲームでは、最初のリクエストで PGS 専用のスコープをリクエストし、他のスコープはより関連性の高いタイミングで個別にリクエストする必要があります。

OAuth アクセスは、スコープごとに異なる画面を使用して付与されます。これにより、ユーザーはアクセスを許可するスコープをきめ細かく決定できます。PGS スコープのみを使用して自動ログインを使用すると、ユーザーは OAuth プロンプトを操作する必要がないため、ログインの手間を軽減できます。

複数のログイン方法のサポート

PGS は Android プレーヤー用のゲーム ID を指定しますが、ユーザーに関連付けられている唯一の ID である必要はありません。PGS、ソーシャル ネットワーク ID、独自のゲーム内 ID システムを使用して同時にプレーヤーのログインを処理できます。それぞれのシステムは、デベロッパーとプレーヤーの両方に独自の価値を提供します。また、すべてのユーザーが連携して優れたプレーヤー エクスペリエンスを実現できます。

バックエンド統合のためにプレーヤー ID を安全に取得して検証する

サーバーが、ログイン プレーヤーの権限を使用して REST API を介して Play ゲームサービス サーバーと直接通信できるように、サーバー認証コードをリクエストできます。これにより、プレーヤーの ID、プロフィール、その他の情報(例: 承認されている場合の友だちリスト)に直接アクセスできます。プレーヤー ID、友だち ID、その他の関連データをバックエンドに保存する場合は、このメソッドを使用して、これらのフィールドがデバイス側で操作される可能性を排除する必要があります。

また、一部の古いゲームやプレーヤーについては、あるプレーヤーが Android SDK でプレーヤー ID を返す際に、他のプレーヤーが同じプレーヤーを表示した場合と同じ ID にならない可能性があります。この状態は、友だちリストを使用している場合に特に発生する可能性が高くなります。ただし、REST API 内で返される player_id は常に整合性があり、他のプレーヤーに表示される ID です。

詳細については、オフライン アクセスREST API のドキュメントをご覧ください。

クライアントの実装

Android でログイン サポートを実装する方法については、Android ゲームでのログインをご覧ください。