Firebase Cloud Messaging でpush通知を送る
なんとなくSearchConsoleを見ていて「firebase push通知」で迷い込む人が多い印象を得た。
APNs証明書の更新不要!やったー!は前に書いたけどFirebase Cloud Messaging(以下FCM)をそもそもどうやって使うの?を書いてなかった。
実際のところ、オフィシャルなドキュメントを読めば実例付きで書かれており大体判るだろと思っていたが結構需要あるの?*1
オフィシャルドキュメントに書かれている以上の情報は無い。断言しておく。
FCMから端末にメッセージを通知する方法と、サーバからFCM経由端末にメッセージ通知する方法がある。 プロジェクト生成済、通知先のデバイストークンとか登録されている前提。
FCM管理コンソールからメッセージを通知する。
キャンペーンとかの通知メッセージを送る時にはFCMの管理コンソールから送ると良い。
Sign in - Google Accounts でコンソールにログインする。 プロジェクトを選択。 GROW -> Cloud Messaging 開く 新しいメッセージ。メッセージ本文とか適当に。
アプリケーションサーバからFCMサーバへメッセージを送信する。
FCMサーバは FCM HTTP v1 API、レガシー HTTP プロトコル、レガシー XMPP プロトコル の3つのプロトコルをサポートしている。 一番実装が簡単なのは レガシー HTTP プロトコル だと思う。curlでも送信できるレベル。
レガシー HTTP プロトコル
良いサンプルがあった。
quickstart-js/messaging at master · firebase/quickstart-js · GitHub
リクエストヘッダはこんな感じになる。
POST /fcm/send HTTP/1.1 Host: fcm.googleapis.com Authorization: key=YOUR-SERVER-KEY Content-Type: application/json { "notification": { "title": "Portugal vs. Denmark", "body": "5 to 1" }, "to": "YOUR-IID-TOKEN" }
参考資料とか
*1:需要なかったら悲しいな…