概要
このチュートリアルは、プッシュ通知を使用した Android と PlayFab の統合をすばやく開始できるように作成されています。 プッシュ通知には、複数のシステムでの構成が必要です。始める前に、インフラストラクチャのしくみについて説明します。このプロセスには、次の 4 つのエンティティが関与します。- Google Play Services
- Firebase Cloud Messaging Services (FCM、旧 Google Cloud Messaging を基盤として構築)
- PlayFab Services
- クライアント アプリケーション
1. Google Play Services
Google Play Services は、パッケージ名を使用して Play マーケット上のページを識別します。 例: com.bob.games.matchthree Google Play に登録されると、パッケージ名は一意のアプリケーション ID となり、Play ストアからのインストールからなりすましの防止まで、さまざまな目的に使用されます。2. Firebase Cloud Messaging (FCM)
Firebase Cloud Messaging サービスは、プッシュ通知を送信、転送、配信するためのクラウドベースのシステムを提供します。 また、FCM サーバー キーを使用して、他のサービス (PlayFab など) があなたに代わってプッシュ通知を送信することもできます。3. PlayFab Services
PlayFab Services は、FCM サーバー キーを使用してクライアントにプッシュ通知を送信します。4. クライアント サービス
最後に、クライアント アプリケーションが通知を受信し、必要に応じて処理します。4 つの部分への分割
このため、4 つの異なるシステムをセットアップする必要があります。そのため、このチュートリアルは 4 つの章に分かれており、各部分の構成について説明します。システムを構成する順序が重要です。
前提条件
- Google アカウントが必要です。
- PlayFab アカウントが必要です。
- Android Asset Studio の Notification icon generator を使用して生成した通知アイコン。
シナリオ
チュートリアルのこのセクションでは、Foo PlayFab App というアプリケーションを作成します。これは、次の機能を持つ Android アプリです。- Android デバイス ID を使用して PlayFab にサインインします。
- PlayFab からプッシュ通知を受信します。
このチュートリアルに従う際は、必ず独自のパッケージ名とタイトルを使用してください。
第 1 章: Firebase の構成
Firebase の構成は、公式コンソール ページから開始します。新しいプロジェクトを追加できるページが表示されます。- これを行うには、次の図に示すように [プロジェクトを追加] 領域を選択します。

- プロジェクト名を入力するよう求められます (このチュートリアルでは Foo PlayFab App を使用していますが、このチュートリアルに従う際は必ず**独自の名前を考えてください)。
- [プロジェクトを作成] ボタンを選択して、次の手順に進みます。

- 次の図に示す領域を選択して、新しい Android アプリケーションをプロジェクトに追加します。

- まず、Android パッケージ名を指定する必要があります。ここでは com.foo.playfab.app を使用していますが、このチュートリアルに従う際は必ず独自のパッケージ名を考えてください。
- [アプリを登録] ボタンを選択して、次の手順に進みます。

- ダウンロードしたら、[続行] ボタンを選択して次の手順に進みます。

- 最後の手順では、Firebase SDK と Google Play SDK を連携させるためのビルド プロセスのセットアップ方法に関する情報が表示されます。
このセットアップを自動的に実行する Android Studio 組み込みの自動化ツールを使用するため、この情報は無視してかまいません。
- [完了] ボタンを選択して続行します。

- アプリケーションが追加されると、ダッシュボードに表示されます。
- この時点で構成は完了です。次に、FCM サーバー キー (PlayFab のプッシュ通知を連携させるために使用します) を取得する必要があります。
- 次の図に示すように、[プロジェクトの設定] に移動します。

- [プロジェクトの設定] で、[Cloud Messaging] タブに移動します。
- [サーバー キー] 領域 (次の図の赤い領域) を探します。
- このキーをコピーし、安全で簡単にアクセスできる場所に保存します。

第 2 章: Google Play Console の構成
アプリの準備ができたら、製品の Play ストア ページを管理するために Google Console プロジェクトを作成することになるでしょう。GooglePlay プロジェクトを作成し、それを Firebase プロジェクトにリンクするプロセスを見ていきましょう。 まず、Google Play Console ページにアクセスし、次の図に示すように新しいプロジェクトを作成します。
- タイトルを割り当てます。
この例では Foo PlayFab App を使用しています。このチュートリアルに従う際は、必ず独自のタイトルとパッケージ名を考えてください。
- [作成] ボタンを選択して続行します。

- Google Play Console プロジェクトページが開きます。
- サイド メニューで [サービスと API] を選択します。

- [サービスの構成] ページが開きます。
- [Firebase Cloud Messaging] パネルを探します。
- 次の図に示すように、[送信者 ID をリンク] ボタンを選択します。

- 前の章で Firebase コンソールを使用した際に受け取った (そして保存した) FCM サーバー キーを使用します。
- 完了したら、例に示すように [リンク] ボタンを選択します。

- 次の例に示すように、Google Play Console に表示される送信者 ID が Firebase コンソールの送信者 ID と一致していることを確認してください。

第 3 章: PlayFab タイトルの構成
この章の目的は、PlayFab Services があなたに代わってプレイヤーにプッシュ通知を送信できるように、PlayFab Services を構成する方法を示すことです。- まず、タイトルの [設定] メニューの [タイトルの設定] に移動する必要があります。
- [プッシュ通知] タブを選択します。
- Android オプションで、[設定] アイコンを選択します。

- Google サーバー API キーの入力を求められます。
- 次の例に示すように、Firebase コンソールで受け取ったキーをコピーします。

- すべてが正しければ、プッシュ通知がアクティブと表示されたページが表示されます。

第 4 章: Android Studio プロジェクトの構成
PlayFab JavaSDK を利用するには、PlayFab Client JavaSDK とその依存関係である Google GSON が必要です。- PlayFab クライアント JavaSDK JAR ライブラリをここからダウンロードします。
-
client-sdk-*.jarと、必要に応じて対応する Java Doc を探します。 - 最新の Google GSON をダウンロードします。
-
gson-*.jarを探します。 - 前述の .jar ファイルを手元に用意しておきます。
- パッケージ名が、このチュートリアル全体 (Firebase など) で使用したものと一致していることを確認します。
この例では com.foo.playfab.app を使用していますが、このチュートリアルに従う際は、独自のパッケージ名とタイトルを考えることを忘れないでください。

- 任意の Minimum SDK を選択します。
- 次に、[Next] ボタンを選択します。

- 使用するテンプレートを選択します。
- 次に、[Next] ボタンを選択します。

- 必要に応じてテンプレートを構成します。
- [Finish] ボタンを選択します。

- [Project] タブ (1) に切り替えます。
前の章で、Firebase コンソールから
google-services.json 構成ファイルをダウンロードしました。これを次の手順で使用します。- このファイルが App フォルダー (2) の下に配置されていることを確認します。
- 次に、Tools (3) に移動します。
- 次の例に示すように、Firebase (4) を選択します。

- 次に示すように、Cloud Messaging フォルダーを探し、Set up Firebase Cloud Messaging を選択します。

- 次の図に示すように、Firebase Notifications Assistant で Add FCM to your app (1) ボタンを選択します。
- Gradle を使用して新しい依存関係が追加されることを示すダイアログが開きます。
- Accept Changes (2) を選択して変更を許可します。
残念ながら、Gradle 同期プロセス (3) によって自動的に追加される依存関係は正しくないため、失敗が報告されます。
-
依存関係を正しくセットアップするには、自動追加された記述を次のように置き換えます。
implementation 'com.google.firebase:firebase-core:16.0.3
implementation 'com.google.firebase:firebase-messaging:17.0.0

- Firebase Notifications Assistant に、依存関係が正しくセットアップされたことが表示されていることを確認します (1)。
この章の最初で、必要な JAR ファイルを入手しました。通常、ビルド ファイルはこれらのファイルを自動的に取得します。
- これらの JAR ファイルが app/libs フォルダー (2) の下に表示されるようにするには、すべてのファイルを選択して右クリックします。
- 次に、次の例に示すように Add as library… (3) を選択します。

- Android Asset Studio の Notification icon generator を使用してアイコンを準備し、app/src/main/res 内に配置します。
- 次の例では、アイコンの名前は ic_stat_blur_on です。

- 最後に、Rebuild Project を選択します。

- app/src/main/AndroidManifest.xml
- app/src/main/java/..packagePath../MainActivity.java
- app/src/main/java/..packagePath../FooAppFirebaseInstanceIdService.java
- app/src/main/java/..packagePath../FooAppFirebaseMessagingService.java
現在の実装は、通知をすばやくテストするためだけに、できるだけ短くなるように作成されています。高品質なベスト プラクティスや、より複雑な実装例については、FCM ガイドを参照してください。
AndroidManifest.xml
次のコードで、MY_PACKAGE_IDENTIFIER プレースホルダーをすべて独自のパッケージ識別子に置き換えます。
MainActivity.java
コード内の次のプレースホルダーは、シナリオに応じて置き換える必要があります。-
PLAYFAB_TITLE_ID- PlayFab Game Manager で取得したタイトルの ID を使用します。
-
PACKAGE_IDENTIFIER- セットアップに一致する Java パッケージ識別子を使用します。
FooAppFirebaseInstanceIdService.java
次に示すコード内のプレースホルダーは、シナリオに応じて置き換える必要があります。PACKAGE_IDENTIFIER- セットアップに一致する Java パッケージ識別子。
FooAppFirebaseMessagingService.java
次に示すコード内のプレースホルダーは、シナリオに応じて置き換える必要があります。PACKAGE_IDENTIFIER- セットアップに一致する Java パッケージ識別子。
テスト
この時点で、アプリケーションをデバイスに展開できるようになっているはずです。- アプリケーションを起動すると、自動的にログインし、プッシュ通知に登録されます。
- デバイスのホーム ボタンを選択して、アプリケーションを最小化します。システム トレイに届く通知をテストできるため、これは重要です。
- 次に、PlayFab タイトルの Game Manager ページに移動し、ダッシュボードを使用して最新の Push Registration を探します。
- プレイヤー ID (1) を選択します。

- [プッシュ通知の送信] ボタン (1) を選択します。
- タイトル (2) を入力します。
- メッセージの本文を入力します (3)。
- [プッシュ通知の送信] ボタン (4) を選択して変更を確定します。

- メッセージがデバイスに届くことを確認します。

