2013 年 5 月 8 日

アンドロイドアプリからGoogle Cloud Messagingを使う方法(第1回)

アンドロイドアプリからGoogle Cloud Messagingを使う方法(第1回)

[Google Cloud Messageing]

Google Cloud Messaging(以下、GCMとする)は、アンドロイド端末にメッセージをプッシュ配信するクラウドサービスです。これを使うと非同期に端末アプリへメッセージ送信が可能になり、様々な通知が可能となります。

身近な例では、新着メール、アプリ更新、その他のお知らせ通知などで利用されています。あまり頻繁に通知されるとユーザーに敬遠されますので、使い方には工夫と節度が必要です。

GCMはクライアントだけではなく、メッセージを送信するサーバサイドのプログラムが必要です。少し長くなりますが、数回に分けて、その実装方法をご紹介します。Google API consoleの画面が以前と変わっているようですが、これが(2013/05)最新のものです。

注意(2014/12/5)

現在、Google API consoleは、Google Developers Consoleに切り替わっています。Google Developers Consoleでの操作は「アンドロイドアプリからGoogle Cloud Messagingを使う方法(第1回)第2版」を参照ください。

参考URL

このリソースが現時点(2013/05)のGoogle API consoleと合致しているのではないでしょうか。現在、SenderIDはDashboardでわかると思います(URLからのものと同じです)。

  1. GCM Architectural Overview
  2. GCM: Getting Started

現在、Google API consoleはGoogle Developers Consoleに移行しようとしています。しかし、GCMのServer Keyを作成する機能が見当たりません。今のところ、旧API Consoleも利用できるので、こちらを利用した方がいいかもしれません(2013/11/12)。

動作環境

API Level8(android2.2)以上で、Google Play Storeがインストール(com.google.android.gsfがインストールされているということだろう)されている端末で動作します.
端末にGoogleアカウントが設定されていないと動作しません(Googleアカウント登録は、API Level 15以上なら不必要)。

たとえば、Kindle Fireで動作させると以下のような例外が発生します。

java.lang.UnsupportedOperationException: Device does not have package com.google.android.gsf

Kindleに無理やりインストールしたら動作するのかもしれませんが、試したことはありません。

エミュレーターを使うなら、AVDMでターゲットにGoogleAPIsを指定したエミュレーターを作成してください。

Google API console

準備として、GCMを有効にして、アプリケーションIDを作成するために、Google API consoleを開きます。

プロジェクトを生成

まだプロジェクトを生成されていないときは、以下のような画面が表示されます。このままCreate Project…をクリックします。ちなみに、一日に作成できる数が決まっているようです。調査しているときに上限が来てしまいました。みなさんもご注意ください。

GCMサービスを有効に

次にGCMサービスを有効にします。この画面では編集してGCMサービスを上の方へ持ってきています。実際はリストの下の方にあります。ここをONにします。この後、Terms of Serviceへの同意が必要ですが、省略します。

サーバキー(API Key)の生成

次に画面の左メニューからAPI Accessタブをクリックします。そして、左下のCreate new server key…をクリックします。

もし、特定のIPアドレスからのアクセスに制限したい場合は、ここに設定します。なければ、そのままCreateをクリックします。

その後、この画面に戻ってきますので、サーバーキー(Key for server appsのAPI Key)を記録しておいてください。

最後にOverviewタブをクリックしてDashboardのProject Numberを確認します。これはアンドロイドアプリ側で利用するSender IDに該当します。以前は、プロジェクトを作成したときのURLに付加されている番号を確認するとあったのですが、現在はDashboardで確認できます。サーバーキーと、このProject Numberは次回のプログラミングで利用します。

注意(2014/12/1)

現在、Google Developers Consoleに切り替わっていますが、プロジェクトのダッシュボードの上に表示されているプロジェクト番号がSender IDに該当します。

ここまでお疲れ様でした。これらの設定は頻繁に行うことではありませんし、またいつの間にか画面や方法が変わってしまっている場合がありますので、注意が必要です。

次回はクライアントのアンドロイドアプリとサーバーサイドのアプリの実装を説明します。

関連記事

  1. アンドロイドアプリからGoogle Cloud Messagingを使う方法(第1回)- 準備編
  2. アンドロイドアプリからGoogle Cloud Messagingを使う方法(第2回)- クライアントアプリ編
  3. アンドロイドアプリからGoogle Cloud Messagingを使う方法(第3回)- サーバーアプリ編