ios,android向けアプリのpush通知に、amazon sns利用してみたので、使い方のメモ。
まずは最初の壁。用語についての私なりの解釈。
##用語の整理
Arn(Amazon Resource Name)
登録データのamazon用ID。このIDを元にデータを参照したり、配信先として呼び出したりする
###Endpoint Arn
端末のトークン(android ならregistration ID)を登録すると、このEndpoint Arnが作られる。1台だけに配信する場合には、このEndpoint Arnを指定する。
コンソール画面から配信する場合は、Applications -> publish to Endpoint
###Topic
複数のEndpoint Arn を登録できる機能。Topicを作成するとTopic Arnができるので、これに対して配信すると、そのTopicに登録されているEndpointすべてに配信される。
###Applications
これが一番分かりにくかった。
Endpointを作成時に、どの端末の種類かを区別するもの。
- iOSなら"Apple Production"か"Apple Deveolpment"
- Androidなら"Google Cloud Messaging(GCM)"
###Subscriptions
Topicの登録リスト。Topicに登録することをSubscribeとも言う。
###Publish
配信すること。1台ならEndpoidt Arn、複数配信するならTopic Arnを指定する。
##配信準備、コンソール編
おおまかな流れは、
-
Application Nameは、このApplicationの名前なので分かりやすい適当な名前にする。
-
Push Notification Platform で配信先の端末の種類を選択。iOSかandroidなら画像の囲ったいずれかを選択
-
Topic NameがAPIなどから呼び出す際も利用する名前。Display Nameは任意で表示用の分かりやすい名前をつける。無くてもOK。
-
Topic ができたらCreate Subscription して、ProtocolにApplicationを選択し、Endpointに先ほど生成されたEndpoint Arnを入力
-
なお、Endpoint Arnの確認方法は、Applications から該当EndpointをチェックしてPublish to Endpoint。でキャプチャのとこをコピペ。なぜかちょっと手間。
Publish
準備ができたので、配信です。
1台だけの配信の場合
- Applications -> 該当端末のARNをクリック
- 該当端末をチェック -> Publish to Endpoint
- JSON message generator から、配信メッセージ入力。すると、対象のapplicationに合わせてjsonを生成し入力済みになる
4.Publish message
複数配信(topic配信)の場合
- Topics -> 該当topicをチェック -> Publish to topic
- JSON message generator から、配信メッセージ入力。対象のapplicationに合わせてjsonを生成してくれる。複数のapplication(iOSとandroid等)が含まれていればそれも考慮した複合jsonを生成してくれます。便利!
- Publish message
##使い方、API編
と行きたかったですが、長くなったので一旦終わり。
処理の手順は、基本上記コンソールと同じです。