今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

GoogleのMobile Backend Starterのデモを動かしてみた - その2

昨日に引き続き、GoogleのMobile Backend Starterのデモを動かしてみる。今回は Getting Started の次に書かれてある Adding Google Cloud Messaging to the Sample というのを試してみる。

Google Cloud Messaging(GCM)というのは、リアルタイムにサーバー側からクライアント側にメッセージをプッシュする仕組みらしい。


Google API console での準備

まず Google API console にアクセスして左側の Services をクリックする。
Google Cloud Messaging for Android を見つけて ON にトグルする。ここで Terms of Services が表示されたら Accept する。

次に API console の左側の API Access をクリックする。そして画面の下にある Create new Server key をクリックする。

ダイアログが開くので、そのまま左下の Create をクリックする。

ダイアログが閉じて、Simple API Access の下に Key for server apps (with IP locking)というのが生成されているのが確認できる。ここの API Keyを次で使用する。


Mobile Backend の設定

Google Cloud Console でサンプルを動かすためのプロジェクトを選択し、Mobile Backend App の Settings をクリックする。

Mobile Backend settings の画面が開くので、Google Cloud Messaging のところで Enabled を選択する。すると、API Key を入力するためのテキストボックスが表示されるので、そこにさきほどの API Key をペーストし、Save をクリックする。


ソースコードの変更

Google API console の左側の Overview をクリックすると、Project Summary の下に Name と Project Number が表示されている。

この Project Number の値をコピーして、Consts.java の PROJECT_NUMBER の値を変更する。

  /**
   * Set Project ID of your Google APIs Console Project.
   */
  public static final String PROJECT_ID = "hogehoge";

  /**
   * Set Project Number of your Google APIs Console Project.
   */
  public static final String PROJECT_NUMBER = "669289670809";

  /**
   * Set your Web Client ID for authentication at backend.
   */
  public static final String WEB_CLIENT_ID = "*** ENTER YOUR WEB CLIENT ID ***";

これでパッケージエクスプローラのプロジェクトを右クリックして、[実行]-[Androidアプリケーション]から起動したら動いた?いや、動かない。
昨日はさくっと動いたのに。
com.google.api.client.googleapis.json.GoogleJsonResponseException : 404 Not Found というエラーが出て動かない。
「mobile backend starter 404 JsonResponseException」みたいなキーワードでぐぐってみると、多くの人がデプロイしなおせって書いてるけど、どうもそういう問題じゃないような気がする。
なんだかんだやってたら一度だけ動いたけど、別のクライアントにメッセージが飛ぶこともないし。そのまま放置しててしばらくして試したら、何もやってないのに動かなくなってたりするし。
GAEがきちんと動いてればそれなりに動くような気がする。。。

とかなんとか、動かないもんでいろいろと試してたんだけど。。。

あれ?
デプロイに失敗してるし。なんでー?

デプロイできてないなら動くわけないよなー。