Edited at

Amazon SNS で、iOS・Androidにpush通知する方法

More than 1 year has passed since last update.

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を指定する。


配信準備、コンソール編

おおまかな流れは、


  • ApplicationsからCreate Platform ApplicationでEndpoint Arn作成

    AWS_SNS.png


  • Application Nameは、このApplicationの名前なので分かりやすい適当な名前にする。


  • Push Notification Platform で配信先の端末の種類を選択。iOSかandroidなら画像の囲ったいずれかを選択

    AWS_SNS_create_app.png


  • Topic 作成(複数端末に同時に配信したい場合)

    AWS_SNS_create_topic.png


  • Topic NameがAPIなどから呼び出す際も利用する名前。Display Nameは任意で表示用の分かりやすい名前をつける。無くてもOK。

    AWS_SNS_create_topic_new.png


  • Topic ができたらCreate Subscription して、ProtocolにApplicationを選択し、Endpointに先ほど生成されたEndpoint Arnを入力

    AWS_SNS_create_sub.png

    AWS_SNS_create_sb2.png


  • なお、Endpoint Arnの確認方法は、Applications から該当EndpointをチェックしてPublish to Endpoint。でキャプチャのとこをコピペ。なぜかちょっと手間。

    AWS_SNS_conf_endpoint_arn.png



Publish

準備ができたので、配信です。


1台だけの配信の場合


  1. Applications -> 該当端末のARNをクリック

  2. 該当端末をチェック -> Publish to Endpoint

  3. JSON message generator から、配信メッセージ入力。すると、対象のapplicationに合わせてjsonを生成し入力済みになる
    AWS_SNS_create_message.png

AWS_SNS_create_message_input.png

4.Publish message


複数配信(topic配信)の場合


  1. Topics -> 該当topicをチェック -> Publish to topic

  2. JSON message generator から、配信メッセージ入力。対象のapplicationに合わせてjsonを生成してくれる。複数のapplication(iOSとandroid等)が含まれていればそれも考慮した複合jsonを生成してくれます。便利!

  3. Publish message


使い方、API編

と行きたかったですが、長くなったので一旦終わり。

処理の手順は、基本上記コンソールと同じです。