LoginSignup
29
24

More than 3 years have passed since last update.

Firebase のプッシュ通知をcurlで実行

Last updated at Posted at 2016-05-28

Firebase Consoleからでも出来るけど、プッシュ通知の多言語対応をしたかったので。。。
でもって、なんか数時間なやんだ結果、そんな事だったのか。。。。となったので自分への備忘録。

Firebaseのセットアップとかその辺はスキップ。

実際にcurlするところのメモだけ。

curl \
--header "Authorization: key=ご自身のAPI_KEY" \
--header Content-Type:"application/json" \
https://fcm.googleapis.com/fcm/send \
-d "{
  \"to\" : \"/topics/何か適当に\", 
  \"time_to_live\" : 0,
  \"restricted_package_name\" : \"bundle id\",
  \"notification\" : {
    \"sound\" : \"default\",
    \"badge\" : \"1\",
    \"body_loc_key\" :\"KEY_ID\",
    \"body_loc_args\" : [\"置き換え文字\"],
    \"title_loc_key\" : \"TTL_KEY_ID\",
    \"title_loc_args\" : [\"置き換え文字\"], 
  }
}"

補足:
Firebase Notificationsとは違い、FirebaseAnalyticsとは連携できていないようなので、
\"data\" : { \"push_label\" : \"キー\" }
みたいなのを一緒に送ってプッシュ通知の既読数をFirebaseAnalyticsへ送信とかした方がいいかも。

補足追記:
/topicsを指定すると
2016-05-31 06:48:40.731: <FIRMessaging/WARNING> Cannot parse topic name /topics. Will not subscribe.
といわれるので指定できないようです。

ハマった内容

メッセージが届くがローカライズされたメッセージが表示されないという問題。
ログでもプッシュ通知は届くがuserInfoの内容が変だった・・・

試行錯誤を数時間・・・

原因

Appleさんのドキュメントのパラメータは、title-loc-args: "KEY" という感じで、
Firebaseのドキュメントのパラメータは、title_loc_args: "KEY" という感じ。

私はアップルのドキュメントからキーとコピーしてきたのですが、
-
_
って。。。
おぅぅ、、、なんとまぁ。。。

でアンダーバーにすれば問題無く解決したというお話。
後から気づいたのですが、Firebaseは基本的にanalyticsのイベント名とかも英数字とアンダーバーだけみたいです。

ドキュメントはきちんと読まないとダメですね。

29
24
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
24