NodeでFCMを利用してAndroidにプッシュ通知を送る
すいません!すいません!
めちゃくちゃブログの更新滞っちゃいましたねorz
概要
サーバーサイドのNodeからFCM経由でAndroidアプリにプッシュ通知を送る際の実装メモです。
FCMとは?
Firebase Cloud Messagingのことで、Googleが提供するAndroidの通知サービスです。
これまでは Google Cloud Messaging (GCM)が一般的だったのですが、GoogleがFirebaseを買収したことにより、今後はFCMをメインで利用していくことになります。
事前準備
FCMの認証のための秘密鍵を取得します。
設定のサービスアカウントからいけます。
利用するライブラリ
自作するのは面倒なので、さすがに誰か作ってるだろーと思って探したらありました。
コード
初期設定
const fcm = require('fcm-node') const fcmProvider = new fcm(require('../keys/privatekey.json'))
送信関数
function sendFcm(title, body, token, payload = {}) { const message = { to: token, // register token notification: { title: title, // プッシュ通知として表示されるタイトル body: body // プッシュ通知本文 }, // アプリに送信するペイロード // Number型は送れないので文字列にしておく data: Object .keys(payload) .reduce((accum, current) => { accum[current] = String(payload[current]) return accum }, {}) } fcmProvider.send(message, (err, response) => { if (err) { logger.system.error(`sending fcm is failure : ${err}`) } else { logger.system.info(`sending fcm is success : ${response}`) } }) }
APNsにも送信するため個別で関数を用意しています。
ちなみに
Firebaseのコンソールからも通知を送信できるのでプッシュが届かない場合にアプリ側の問題か、サーバー側の問題か切り分けることが出来ます。
Have a happy Notification!