Firebase Cloud Messaging は iOS と Android の両方に、単一のAPIでプッシュ通知を送信できます。
各OS への SDK 組み込み:
https://firebase.google.com/docs/cloud-messaging/ios/client
https://firebase.google.com/docs/cloud-messaging/android/client
サーバからプッシュ通知を送信する API:
https://firebase.google.com/docs/cloud-messaging/downstream
もちろん、各OSでプッシュ通知の機能が少し違うので、それぞれに向けたパラメータも用意されています:
https://firebase.google.com/docs/cloud-messaging/http-server-ref#header
Go で Firebase Cloud Messaging でプッシュ通知を送信するクライアントも作ってみました github.com/najeira/fcm 。
iOSの従来トークンからの変換
さて、Firebase の SDK を組み込むことでアプリから Firebase Cloud Messaging のトークンを取得できますが、いままで取得した APNs のトークンを活用したい場合は以下の API で変換できます。
これは Google Cloud Messaging の API ですが、Firebase Cloud Messaging と統合されたので、この API で得られたトークンをそのまま使うことができます。Authorization
ヘッダーに入れる API Key も Firebase のもので OK です。
Go 用の変換処理は github.com/najeira/convert_apns_to_fcm こちらに書いてみました。
見ればわかりますが、単純な JSON API なので、他の言語で実装するのも簡単だと思います。
いままで iOS と Android で別に管理していた処理をひとつの API に統合できるので、実装も運用もシンプルになりますね!