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で確認するよりよさそうなので、移行を考えてみてもいいかもしれません。