Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
142
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

@papettoTV

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

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編

と行きたかったですが、長くなったので一旦終わり。
処理の手順は、基本上記コンソールと同じです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
142
Help us understand the problem. What are the problem?