GCM のサンプルを動かしたメモ
■GCM を使うための事前準備
- GoogleAPI コンソールでプロジェクトに
GCM API
を使用する設定 このとき、プロジェクトキー
とAPIキー
がわかる。あとで使うので控えておく
■GCM サーバ(Google)を使う
<GCM 初期処理>
<GCM 送信処理>
APIキー
と登録ID
を以て送信先端末を指定して、PUSH 通知を行う 1,000 程度までなら一斉送信可能?要検証
■GCM で気をつけておくこと
セキュリティ的な懸念は、
登録ID
が定期的にリフレッシュされる、ということろが Google が想定している一つの回避方法?(セッションのリフレッシュのような)プロジェクトキー
は Android アプリの逆コンパイルでハックされるが、それだけでは勝手にPUSH 通知はできない。APIキー
もあわせて必要。APIキー
を知り得るためには、Google アカウントでログインが必要。サードパーティーAPPサーバで簡単にブロードキャストしまくる API を作るとダメ
悪意をもった第三者が API を呼ぶだけで PUSH 通知されてしまうサンプルを動かしてソースをみると単純なのですぐわかる。SDK Manager マネージャから Extras > Google Cloud Messaging for Android Library をインストール。次のようなパスにサンプルコードがあるので、設定だけ変更するとすぐ動作する。
/Users/user/sdks/adt-bundle-mac/sdk/extras/google/gcm/samples/gcm-demo-appengine /Users/user/sdks/adt-bundle-mac/sdk/extras/google/gcm/samples/gcm-demo-client /Users/user/sdks/adt-bundle-mac/sdk/extras/google/gcm/samples/gcm-demo-server
gcm-demo-appengine
は GAE でのサンプルっぽい。まだためしていないけどそんな難しくはないと思う。gcm-demo-server
はサーブレット。オンメモリなのでサーバ停止したりすると GCM にはデバイス登録しているのにこっちのサーバにはデバイス登録していない状態とかなって、Androidアプリとサードパーティーサーバの間でデータの同期がとれていない状態とかなっちゃうので注意。gcm-demo-client
は Androidアプリ。すごくシンプル。
■参考サイトとか
1. GCM をはじめよう - ソフトウェア技術ドキュメントを勝手に翻訳
2. GCM アーキテクチャの概要 - ソフトウェア技術ドキュメントを勝手に翻訳
3. GCM デモ アプリケーション - ソフトウェア技術ドキュメントを勝手に翻訳