スマホアプリ開発を加速する,Firebaseを使ってみよう

第9回 Firebase Cloud MessagingとFirebase Notificationsでメッセージを送信する

この記事を読むのに必要な時間:およそ 9 分

APIを使ってメッセージを送信する

これまでも触れてきたように,Firebase Cloud Messagingは自前で持っているサーバと連携してこそ,その真価を発揮します。

自前のサーバとの連携方法はAbout Firebase Cloud Messaging Serverに詳しく解説されています。紹介すると長くなるため本連載では扱いませんが,ちょっと試してみるだけならcurlコマンドでAPI越しにメッセージを送信することが可能です。

基本的なアイディアはこのcurlコマンドと同じなので理解の助けになる他,開発時にちょっとメッセージを送ってみるといった場合に大変重宝するので解説したいと思います。

サーバーキーの取得

FirebaseのWebコンソールにログインし,⁠プロジェクトの設定」を選択します。

図12 プロジェクトの設定

図12 プロジェクトの設定

タブを「クラウドメッセージング」に切り替え,⁠サーバーキー」をクリップボードにコピーします。

図13 サーバーキーの取得

図13 サーバーキーの取得

Notification Messageの送信

それではさっそくサーバーキーを利用して,curlコマンドでNotification Messageを送信してみましょう。

curl --header "Authorization: key=[YOUR_SERVER_KEY]" \
     --header Content-Type:"application/json" \
     https://fcm.googleapis.com/fcm/send \
     -d "{\"to\": \"/topics/news\",\"priority\":\"high\",\"notification\": {\"title\": \"this is title\", \"body\": \"this is body\", \"icon\": \"ic_stat_ic_notification\"}}"

--header "Authorization: key=[YOUR_SERVER_KEY]"の部分に先ほど取得したサーバーキーを指定します。あとはhttps://fcm.googleapis.com/fcm/sendというエンドポイントにapplication/jsonとしてメッセージを送信しているだけです。

JSONの中では"to":"/topics/news"という指定で/newsというトピックに対してメッセージを送信しています。"priority":"hight"で高プライオリティを指定しています。プライオリティに関してはSetting the priority of a messageをご参照ください。

ここで最も重要なのはその次の"notification":{}の部分です。ここでtitlebodyiconを指定してメッセージを送信しています。無事クライアントで受信できれば成功です。

Data Messageの送信

同様にData Messageも送信してみましょう。

curl --header "Authorization: key=[YOUR_SERVER_KEY]" \
     --header Content-Type:"application/json" \
     https://fcm.googleapis.com/fcm/send \
     -d "{\"to\": \"/topics/news\",\"priority\":\"high\",\"data\": {\"custom_title\": \"this is custom title\", \"custom_body\": \"this is custom body\", \"icon\": \"ic_stat_ic_notification\"}}"

メッセージをdataとして送信した以外はNotification Messageとまったく同様です。こちらはキーバリューペアに任意のものを設定することができます。こちらもクライアントで受信できれば成功です。

まとめ

いかがだったでしょうか。

今回はFirebaseの新機能のうち,メッセージ配信基盤としてGoogle Cloud Messagingを置き換えるサービスとして生まれ変わったFirebase Cloud Messagingについてご紹介しました。非常に簡単かつ柔軟にメッセージ配信を行うことができることをおわかりいただけたのではないでしょうか。

さて,次回はこれまでの総括として,連載で紹介してきたさまざまな機能を盛り込んだ実践的なサンプルアプリを公開し,そのソースコードを解説して連載を締めたいと思います。どうぞお楽しみに。

著者プロフィール

白山文彦(しろやまふみひこ)

サーバサイド,インフラ,Androidなど何でもやるプログラマ。