Closed6
Androidアプリ の PUSH 通知を FCM HTTP v1 に対応する
背景
- 長期間メンテが滞っていたAndroidアプリをメンテしている
- ちょっと前 (9月頃?) に PUSH 通知が止まったので FCM (Legacy) API を FCM HTTP v1 に移行することになった
- また Android アプリ側から通知設定ONにできない問題も発生していた
全体像
最終的に以下のような構成に落ち着いた
課題
- 稼働しているシステムに継ぎ足しで出来上がった アーキテクチャ なので Firebase と Amazon SNS の役割が重複しているように見える
- どちらか一方のみに寄せることはできそうだが、アーキテクチャ刷新まで手がまわっていない状況
準備フェーズ
PUSH 通知するために必要なことが3つある
- Amazon SNS に Platform Application を作成しておく
- このとき、Firebase Console からサービスアカウントの秘密鍵(JSON)を取得して Amazon SNS に格納しておく
- Android App 側で FCM HTTP v1 を利用するための Token を取得する
- Amazon SNS の Platform Application に対して 2. の Token を使って Platform Endpoint を作成する
参照ドキュメント
メッセージ送信フェーズ
- 送信者が受信者(User)を指定してメッセージを送信する
- App Server は受信者(User)の Device に紐づく Amazon SNS の Endpoint を特定する
- 特定した Endpoint に対してメッセージを送信する
- Amazon SNS は Platform Endpoint に(前述の準備フェーズで)設定された認証情報を元に FCM v1 API を使いメッセージを送信する
- FCM は Token に紐づくデバイスにメッセージを送信する
トラブルシュート: SNS 側の送信結果を確認する
必要なもの
- Token
デバイスの Token があれば、送信結果のログから該当デバイス宛の送信が成功したか、失敗したか確認することができる
このスクラップは11日前にクローズされました