ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

MacOSでAndroidのエミュレータに向けて、Push(GCM)してみた

スポンサードリンク

アンドロイドの実機持っていなかったので
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

先程のコマンドの と registration_ids を
上記コマンドから変更して下記のようにする。

$ 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を発行するのが吉だとか。
これについてはまだどっちが良いのはわかりません。