FirebaseのFCM(プッシュ通知)をcurlで実行してもiPhoneアプリにNotificationがでない

FCM Server経由でiPhoneアプリAndroidアプリにtopicを利用したpush通知を送りたくて、curlで確認したところかなりハマってしまったのでメモとして残しておきます。

前提として、両アプリともFirebase Cloud Messaging(FCM)を組み込んでいて、Firebase ConsoleからNotificationsが送れるものとします。

Androidアプリはさすがにすんなり動作したのですが、iPhoneアプリは半日ぐらい悩みました。。。

以下が動作したパターンです。

 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に表示されない。最後までハマった)

何かのお役に立てれば幸いです