FCMはGCMと下位互換性があります。AWSでFCMを設定する手順はGCMの設定手順と同じであり、(少なくとも現時点では)FCMはサーバー側の構成に関してGCMおよびSNSと透過的に連携します。
ただし、data
Androidデバイスにペイロードを送信する場合、拡張するクライアント側サービスを実装しない限り、ペイロードは処理されませんFirebaseMessagingService
。AWSコンソールのデフォルトのJSONメッセージジェネレーターがメッセージを送信しdata
ます。前述のサービスが実装されていない限り、アプリはメッセージを無視します。初期テストのためにこれを回避notification
するには、デバイスで受信されるカスタムペイロードを提供できます(アプリがフォアグラウンドにない限り)。
ありGCM-FCMの移行手順 Googleが提供するには、しかし、あなたが作る必要がある変更はアプリケーション側で主にされています。
SNSを使用してアプリでGCM / FCMをテストするために実行する必要がある手順は次のとおりです。
- 作成SNSでのプラットフォームのアプリケーションをとしてGoogleクラウドメッセージング(GCM)を選択し、プッシュ通知プラットフォーム、およびご提供するサーバーのAPIキーでAPIキーフィールドを。
- プラットフォームアプリケーションを選択し、[ プラットフォームエンドポイントの作成 ]ボタンをクリックします。
- アプリによって生成されたInstanceID(デバイストークン)を提供します。Androidアプリ内でこれを表示するには、
FirebaseInstanceIDService
を拡張してonTokenRefresh
メソッドをオーバーライドする必要があります。これを実行したら、アプリをアンインストールして再インストールすると、初回起動時にトークンがAndroid Studioのデバッグコンソールに出力されます。
- [ エンドポイントの追加 ]ボタンをクリックします。
- プラットフォームアプリケーションのARNリンクをクリックします。
- デバイス用に新しく作成されたエンドポイントを選択し、[ エンドポイントに公開 ]ボタンをクリックします。
- JSON Message Formatを選択し、JSONメッセージジェネレータボタンをクリックします。
- テストメッセージを入力し、[ JSONを生成 ]ボタンをクリックします。
- ついに「ごちゃごちゃパーツ」が登場。
SNSによって生成されるメッセージは次の形式になります。
{
"GCM": "{ \"data\": { \"message\": \"test message\" } }"
}
前述したように、data
ペイロードを受信するサービスが実装されていない場合、ペイロードは無視されます。あまりコードを書かずにテストしたいので、代わりにnotification
ペイロードを送信する必要があります。これを行うには、JSONメッセージを読み取るように変更するだけです。
{
"GCM": "{ \"notification\": { \"text\": \"test message\" } }"
}
これを実行したら、アプリがデバイスで実行されていないことを確認し、[ メッセージの公開 ]ボタンをクリックします。デバイスに通知ポップアップが表示されます。
もちろん、これらすべてをAmazon SNS APIを介してプログラムで行うことができますが、すべての例ではdata
ペイロードを使用しているようなので、それを念頭に置き、ユースケースに適したペイロードを生成する必要があります。