2013年10月23日水曜日

AndroidでAmazonSNSのプッシュ通知サンプルアプリを作成


クラウドサービスの代表といえば、AWS(Amazon Web Service) ですよね?

そのAWSの『Amazon Simple Notification Service』にも、モバイルデバイスへのプッシュ通知機能が、2013年8月に追加されています。
http://aws.amazon.com/jp/sns/

AWSの無料利用枠で、1ヶ月100万通知迄は無料とのことですので、『Android+Parse.comのプッシュ通知』に続いて、『Android + AmazonSNSによるプッシュ通知』を作成してみました。

(といっても、AWS公式サンプルアプリをダウンロードし、各種設定を行っただけです・・・それで動きます^^;)

AmazonSNSGCM(Google Cloud Messaging for Android) を連携し、Androidモバイルアプリにメッセージを送信します。

[前提条件]
  • Amazon Web Service アカウントを作成済であること(1年間無料で利用できます)
  • Google アカウントを作成済であること(GCMも無料で利用できます)

[サンプル作成内容]
  • AWS公式サンプルアプリをダウンロードし、Androidプロジェクトを作成
  • GCMにアプリケーションを登録し、Project Number と API Access Key を取得
  • Androidサンプルアプリに、GCMのProjectNumber を設定
  • AmazonSNSにアプリケーションを登録し、GCMのAPI-Keyを設定
  • AmazonSNSに設定したアプリに、モバイルデバイスの情報を追加
  • AmazonSNSに設定したアプリのコンソールから、プッシュ通知


こちらのブログを参考にさせて頂きました

AWS公式
http://aws.typepad.com/aws_japan/2013/08/push-notifications-to-mobile-devices-using-amazon-sns.html

クラスメソッド株式会社様 開発ブログ
http://dev.classmethod.jp/smartphone/android/amazon-sns-mobile-push/

 

1. AWS公式サンプルアプリをダウンロードし、Androidプロジェクトを作成

 【AWS発表】 Amazon SNS を使ったモバイルデバイスへのプッシュ通知
AWS000073

 上記公式ブログ中段頃にあるリンク サンプルのモバイルプッシュアプリケーション を押下し、ZIP 
 ファイルをダウンロード後、展開します。

 AWS000074

 AndroidMobilePushAppフォルダを、Androidプロジェクトとして、Eclipse ADT でインポートします。

 インポートしたプロジェクトのプロパティを開き、google-play-service_lib を追加しておきます。

 AWS000082

 

2. GCMにアプリケーションを登録し、Project Number と API Access Key を取得


 Google apis (https://code.google.com/apis/console/) にアクセスし、任意のプロジェクトを作成します。
(私は『GCMsampleAWS』としました)

 メニュー Overview に、Project Number が表示されます。

 1-AWS000019

 メニューから、Service を選択し、『Google Cloud Messaging for Android』 を有効にします。

 AWS000017

 AWS000018

 メニューの API Access に、API-Key が表示されます。

 1-AWS000021

3. Androidサンプルアプリに、GCMのProjectNumber を設定(デバイスのIDも確認)


 Androidサンプルアプリの、res/values/strings.xml に、GCM で取得した ProjectNumber を設定します。

 1-AWS000008

 設定が完了したら、デバッグモードの実機を接続し、実行します。

 無事にアプリケーションが起動したら、デバイス固有の registration_id が表示されます。

 1-device-2013-10-23-153116

 Eclipse ADT の LogCat にも表示されているはずなので、コピーしておきます。

 AWS000027

4. AmazonSNSにアプリケーションを登録し、GCMのAPI-Keyを設定


 AWSコンソール (https://console.aws.amazon.com/console/) から、SNSを選択します。

 AWS000072

 SNS Dashboard より、Add a New App を押下します。

 AWS000076

 Application Name を入力、Push Plathome は GCM を選択し、Google Apis で取得した API-Key を入力します。

 AWS000077

 Add New App を押下し、次の手順に進みます。

5. AmazonSNSに設定したアプリに、モバイルデバイスの情報を追加


 上記 4. の手順後、以下の画面に遷移していると思いますので、Add Endpoints を押下します。

 AWS000078

 ※もし、違った画面が表示されている場合は、SNS Dashboard の Apps から、登録したアプリを選択し、Add Endpoints を押下します。

 AWS000079

 Device Token に、手順 3. で取得した registration_id を設定します。

 成功メッセージ
 
 AWS000080

6. AmazonSNSに設定したアプリのコンソールから、プッシュ通知


 SNS Dashboard の Application Details で、登録したデバイスを選択し Publish を押下します。

 1-AWS000081

 Message: を入力し、Publish Message を押下すれば、Androidアプリにプッシュ通知が行われます。

 1-device-2013-10-16-133157

 Androidアプリが起動していない場合、ステータスバーに通知されます。

 device-2013-10-16-133434 device-2013-10-16-133459


以上です。

2013年10月4日金曜日

AndroidでParse.comのプッシュ通知サンプルアプリを作成


MBaaS【Mobile Backend as a Service】と呼ばれるクラウドサービスが、去年辺りから盛り上がっているようです。

米国のParse(www.parse.com)が、無料トライアル可能なので、『Android + Parseによるプッシュ通知』を作成してみました。


Parse に登録したプッシュ通知アプリから、Androidモバイルアプリにメッセージを送信します。
  • Parse にサインイン (メールアドレス、GitHubアカウント、FacebookアカウントでOK)
  • Parse にアプリを登録 (アプリ名のみでOK)
  • ローカル環境(ADTなど)で、Androidプロジェクトを作成 (デフォルトのHello World! でOK)
  • Parse から SDK をダウンロードし、作成したAndroidプロジェクトの libs に配置
  • Parse の Start Guide 通りに Androidソースに追記
  • Parse に登録したアプリから、Androidアプリにプッシュ通知

こちらの書籍を参考にさせて頂きました
>『Effective Android』 http://techbooster.org/event/16422/


1.Parse にサインイン(同時にアプリ登録も行われます)


Parse(www.parse.com)

PA000039

中央にある『Try it for free』をクリック

PA000040

GitHubアカウントでログインすることにしたので、左下の『Log in with GitHub』をクリック

PA000041

GitHubのサイトに遷移し、Parseと連携する許可を求められるので、

PA000042

下にスクロールして、『Allow access』をクリック

PA000043

GitHubアカウントのパスワードを入力して、

PA000044

Sign up 完了です。

作成するアプリケーション名を入力して、『Start using Parse』へ

(ちなみに Company type は、individual developer を選択しました)


PA000045

PA000046

 

2.Parse の Push QuickStart Guide の開始


  ※あらかじめ、Androidプロジェクトを作成しておきます

上記 Welcome to Parse の Start sending push with Parse を開始します。

PA000047

(1) platform は、Android を選択。

(2) は、Sign up 時に登録したアプリが選択済みとなっています。

(3) 1. SDKをダウンロード&展開し、2. ローカルに作成したAndroidプロジェクトの “libs” フォルダに Parse-1.3.5.jar (※2013/10/4現時点) を、配置します。

PA000049

(3) 3. Androidプロジェクトの MainActivity に追記していきます

 表示されている source のコピー&ペーストでOK

 (※自分が登録したParseアプリの application id と client key が既にセットされている)
PA000050


(4) 『uses-permission』 を、AndroidManifest.xml へ追記

PA000051

(5) プッシュ通知を解析したい場合、MainActivityに追記

(6) AndroidManifest.xml へ追記

 ※この状態で、一度Androidアプリを実行します (実機デバッグでもエミュレータでもOK)

 

3.Parse の ダッシュボードを確認

Push Start Guide のページは、そのままにしておいて、右上ユーザネームにフォーカスし、Dashboard を別タブで開きます。

PA000052

登録したアプリが表示されているので、Data Browser を選択します。

PA000056

ここにデバイスが登録されていれば、Parseからのプッシュ通知が可能です。

4.Parse に登録したアプリから、Androidアプリにプッシュ通知

Push Start Guide のページから、テスト通知が行えます。

ページ最下段の Test the SDK で、

PA000055

『Send Test Push』 をクリック

PA000057

上記のようなメッセージが表示されます。

Androidアプリをデバッグ実行させていた Nexus7 に、メッセージが届きました。

(※2段目がメッセージ内容です)

device-2013-10-04-114151



Parse のダッシュボードから、任意のメッセージをプッシュ通知してみます。

PA000059

Push Notifications タブの 『+ Send a push』 をクリック

PA000061

プッシュ通知するメッセージを入力し、『Send Notification』 をクリック

device-2013-10-04-114904

日本語も問題なくプッシュ通知されました。