アンドロイドの実機持っていなかったので
Pushテストはエミュレーターでしかできなかった。
どうして確認したかったので、探したらあった。
なので、メモ
※ちなみに環境はMac OSになります。
1.エミュレーターを立ち上げる
立ちあげている際、eclipseにログが出力されるが
そのときにregistration_idが一緒に出力されると思うのでそれをメモしておく
2.コマンドライン
ターミナルを起動し、下記コマンドを実行します。
$ curl --header "Authorization: key=<API KEY>" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"<RegistrationID>\"],\"data\":{\"message\":\"Hello\"}}"
API KEYとregistration_idを下記とする。
API KEY = ABCDEFGHIJK_xxxxxxxxxXXXXXXXxxxxxxxxxxx RegistrationID = ABCDEFGHIJKLMN~OPQRSTUVWXYZ
先程のコマンドの
上記コマンドから変更して下記のようにする。
$ curl --header "Authorization: key="ABCDEFGHIJK_xxxxxxxxxXXXXXXXxxxxxxxxxxx" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"ABCDEFGHIJKLMN~OPQRSTUVWXYZ\"],\"data\":{\"message\":\"Hello\"}}"
これで、実行する。
実行後、エミュレータでPush通知の処理が動いたら成功です。
結構ハマりました。
だけど、iOS(のエミュレーター)ではできないっぽいので
慣れてくると結構便利かも
ただ、端末を特定できるID(registration_ids)はあまり利用せず
サーバ側でUUIDのようなIDを発行するのが吉だとか。
これについてはまだどっちが良いのはわかりません。