Play Games Plugin for Unity v0.11.x で LoginWithGoogleAccount を使用するための修正
この記事では、Play Games Plugin for Unity をアップグレードしたバージョンで LoginWithGoogleAccount API を使用した際にエラーが返される場合の回避策について説明します。 このエラーは、Play Games Plugin for Unity を v0.11.x 以上のバージョンにアップグレードした後、既存のプレイヤーが LoginWithGooglePlayGamesServices を使用するように移行 しなかった場合に発生します。理由は、Google が 0.11.x 以上のプラグイン バージョンで追加スコープを追加する機能を削除したためです。 ブラウザーを介してサインインする必要があるとプレイヤーのエクスペリエンスに影響する可能性があるため、この回避策はフォールバックの代替案と見なすべきです。開始する前に
プラグインの最新バージョンを使用しているときに認証を修正するには、次の全体的な手順に従います。- Google OAuth2 API を手動で呼び出す
- ブラウザー タブでプレイヤーの認証を実行する
- Android ディープ リンクを使用してゲームにリダイレクト認証コードを取得する
推奨事項
プラグインのバージョン 0.10.x をまだ使用している間に、ユーザーを LoginWithGooglePlayGamesServices を使用するように移行 API します。バージョン 0.11.x 以降のプラグインにアップグレードした後、残りのプレイヤーに対するフォールバック メソッドとして次の手順を使用します。修正手順
-
ディープ リンクを使用してゲームに Android インテントを追加します。(手順は Unity - Manual: Deep linking on Android (unity3d.com) から改編)
a. Project ウィンドウで、Assets > Plugins > Android に移動します。
b. 新しいファイルを作成し、AndroidManifest.xml という名前を付けます。Unity は、アプリケーションをビルドするときにこのファイルを自動的に処理します。
c. 次のマニフェスト サンプルを新しいファイルにコピーし、アプリの URI で data 要素を更新して保存します。適切な data タグの構築方法の詳細については、この記事 を参照してください。
d. intent-filter タグに autoVerify プロパティが存在することを確認します。
- ディープ リンクを機能させるために、Android 12 以降、Google は開発者に対して、アプリへのリダイレクトを正常に行うために、既知の場所で assetlinks.json ファイルをホストすることを義務付けています。 たとえば、リダイレクト URI が https://mytestapp.com/path1/subpath の場合、有効な assetlinks.json ファイルを https://mytestapp.com/.well-known/assetlinks.json でホストする必要があります。そうしないと、ディープ リンクは機能せず、アプリにリダイレクトされて続行できません。 assetlinks.json ファイルの作成方法の詳細については、Android アプリ リンクの検証 を参照してください。
-
ゲームにディープ リンク処理を追加します。(手順は Unity - Manual: Deep linking (unity3d.com) から改編)。
-
Google OAuth2 API へのブラウザーを起動し、プレイヤーにブラウザー経由でサインインさせるためのコードを追加します。プレイヤーがブラウザーで既にログインしている場合、遷移はシームレスに行われます。そうでない場合は、資格情報を入力する必要があります。
リダイレクト URI は、手順 1 で追加した Android インテント フィルターと一致する必要があります。そのため、ユーザーが認証を完了すると、ブラウザーはそのリダイレクト URI に移動し、ブラウザーはユーザーにアプリケーションに戻るかどうかを尋ねる必要があります。
-
これで、これをテストする準備ができました。認証をトリガーすると、ブラウザーが開き、ユーザーはサインインする必要があります。ブラウザー データが削除されない限り、この手順は 1 回限りのプロセスとなります。

-
ユーザーが認証を完了すると、ブラウザーはリダイレクト URL をどのアプリケーションで開くか尋ねます。

-
このアクションによりアプリケーションに戻り、リダイレクト URL のクエリ パラメーターからコードを取得して、LoginWithGoogleAccount の呼び出しに進むことができます。

- 最後に、移行手順 を使用して移行できなかったユーザーに対するフォールバックの代替手段として、この方法の使用をお勧めします。
