LoginSignup
12
7

More than 5 years have passed since last update.

AndroidのGCMの実装をcurlで確認する

Posted at

GCMの通知の表示やタップ時の動作の確認はめんどくさいです。サーバーサイドの実装が終わってないなどの事情で確認が遅れることもあります。とりあえずReceiverで受け取ってタップ時の画面遷移だけ確認したい時は、curlコマンドを使えば簡単に確認できます。

詳しくは公式のドキュメントを参照してください。

コマンド

curl --header "Authorization: key={API_KEY}" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"APA91bEjkQatisaqJ1yZV9-zWWOfjspnU-GkAvOAc5YQ3lcx3OMvJsdfsdfsdfA_YqQPuWXOAv1fsdfdfuTkMN54YwP_rN8K5eSQ9OsaEd1cq0NQMZFtaAtfv9hF8ys0r5099QYoRuWRyZ\"],\"data\":{\"id\":\"1\",\"message\":\"Test\"}}"

説明

説明
{API_KEY} AdafzaSyCfafb60zRbALmIUaYkXasdffwefwfaf のような、GCMのAPI keyを入れます。サーバーサイドのどこかに書いてあるはずです。
registration_ids 自分の端末のregistration_idを入れます。サーバーサイドで保存した値を確認するか、アプリ内でregistration_idを取得している部分をデバッグしてみましょう。
data 送信する内容をjsonで書きます。GCMを受け取る部分を確認して、テストしたいデータを書きましょう。ダブルクォーテーションにはエスケープが必要です。

成功したら

"success":1というjsonが返されるはずです。

{"multicast_id":6046772559402206696,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"{API_KEY}","message_id":"0:1450321358813601%d61be741f9fd7ecd"}]}%

失敗したら

registration_idsが間違っていた場合は下記のエラーが出ます。

{"multicast_id":8004317580375407199,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}

API_KEYが間違っていた場合は下記のエラーが出ます。

<HTML>
<HEAD>
<TITLE>Unauthorized</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1>
<H2>Error 401</H2>
</BODY>
</HTML>

それ以外で届かないとしたら、registration_idが違う端末のものになっているはずです。

捕捉

世の中はGCM(Google Cloud Messaging)からFCM(Firebase Cloud Messaging)の流れになってます。FCMはGUIコンソールからテストで送信できるので確認も簡単そうです。curlで確認するよりよさそうなので、移行を考えてみてもいいかもしれません。

12
7
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
12
7