ログイン

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

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

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

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

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

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

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

  1. ゲームの起動シーケンス中に、自動ログインを試してプレーヤーを自動的にログインさせます。
  2. 自動ログインが機能しない、またはユーザーのデバイスがオンラインの場合は、手動ログインを試す。
  3. 手動ログインが拒否された場合は、ユーザーの選択を保存し、手動ログインを今後表示しないようにして、起動時に自動ログインを続けます。

また、検索専用の専用のボタンを使用することで、ユーザーが Play ゲームサービス アカウントでゲームにログインできるようにする必要があります。

自動ログイン

自動ログインを使用すると、ユーザーは手間をかけずにゲームにログインできます。これは自動的に行われます。ゲームがユーザーにログインをリクエストし、Google Play ゲーム アプリで自動ログイン設定が有効になっている場合は、ユーザーの PGS ID 認証情報を受信し、PGS ログイン エクスペリエンスが表示されます。

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

自動ログイン

手動ログイン

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

手動ログイン

適切なログイン方法として PGS のポップアップを許可する

PGS を使用するユーザーは、ログイン済みであることを認識する必要があります。これを行うには、PGS のログイン エクスペリエンスを表示します。

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

OAuth スコープと PGS

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

PGS にはゲームに固有のスコープ(games-lite)があり、ゲームが保存済みゲーム機能を使用している場合は、別のスコープ(drive.app_data)に依存します。保存済みゲーム機能では、ユーザーの 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 ゲームでのログインをご覧ください。