AWS、iOS・Android・Kindle Fireユーザー向けプッシュ通知機能「Mobile Push」を発表 (ITmedia)
Amazon Simple Notification Service (Amazon)
iOSやAndroidで提供されているいわゆるプッシュ通知サービス。AppleやGoogleのサーバーと通信する機能を直接作りこむ手間を軽減して使いやすくするためのサービスが世の中に複数存在しますが、クラウドサービス「Amazon Web Services」(AWS)を提供しているAmazonもこのジャンルに参戦してきました。「Amazon Simple Notification Service」(Amazon SNS)は、もともとはメールやSMSなどを用いて通知を行うサービスしたが、通知手段の1つとしてiOSやAppleのプッシュ通知が追加された格好です。
今回はAndroidで試してみます。まずAndroidのプッシュ通知であるGCMを実装したサンプルアプリをちゃちゃっと作ります。詳細はこちらで。
Google Cloud Messaging for Android (Google)
プッシュ通知においては、送信先を識別する符号(GCMの場合「Registration ID」)をアプリが取得してサーバー側に引き渡す処理が必要になりますが、今回は試すだけなのでサクッとログに出力させてコピペします。
次にAmazon SNSにアプリの情報を登録していきます。まずアプリを登録します。API Keyは「Google APIs Console」であらかじめ取得しておきます(アプリを作った段階で取得済みのはず)。
次に「Endpoint」を登録します。超ざっくり言ってしまえば、1つのRegistration IDが1つのEndpointに対応します。「User Data」は今回は特に何も入れなくても問題ありません。
ここまで登録が終われば送信準備完了。登録したEndpointを選択して「Publish」を選択し、文言を入力します。MessageにはプレーンテキストまたはGCMの仕様にのっとったJSON形式の入力を選択できます。プレーンテキストを選択した場合、メッセージ文言はIntentのExtra内に「default」というキーで格納され端末に送信されます。
このように端末にプッシュ通知が送信されます。
細かいところでいうと、端末からアプリを削除した段階でプッシュ通知を送信すると該当Endpointが無効状態になります。Googleサーバーからの返り値をきちんと見ているようです。ただし無効になったEndpointは自動で削除されず、削除するとすると実装側で対応する必要があります。
実用的に使うためにはRegistration IDをいかにしてAmazon SNSに反映させるかがポイントになりそうです。とりあえず直近では開発時のテスト用に便利に使えそう。
より詳細な解説はこちらをどうぞ。
[AWS] Amazon SNS の新機能「Mobile Push」を Android で使ってみた (Developers.IO)