FCM Server経由でiPhoneアプリとAndroidアプリにtopicを利用したpush通知を送りたくて、curlで確認したところかなりハマってしまったのでメモとして残しておきます。
前提として、両アプリともFirebase Cloud Messaging(FCM)を組み込んでいて、Firebase ConsoleからNotificationsが送れるものとします。
「Firebaseによるプッシュ通知のハマりどころ」を参考にして作ってますが、自分のところではiPhoneアプリで手こずりました。Androidアプリはさすがにすんなり動作しました。
以下が動作したパターンです。
curl --header "Authorization: key=$api_key" \
--header Content-Type:"application/json" \
https://fcm.googleapis.com/fcm/send \
-d "{\"to\": \"/topics/info\",\"priority\":\"high\",\"content_available\":true,\"notification\": {\"body\": \"お知らせ\",\"badge\": \"1\"}}"
私の間違ったポイントは以下です。
- api_keyはFirebase Settings -> CLOUD MESSAGING -> Server key を利用する。でないと認証で失敗する。
- priorityをhighにする (iPhoneで必要)
- content_availableをtrueする (最終的に必要かどうか分からない)
- notificationにbodyを指定する(これがないとiPhoneに表示されない。最後までハマった)
何かのお役に立てれば幸いです