2013年10月14日月曜日

Using Amazon SNS Mobile Push APIs 日本語訳

日本語訳したドキュメント


Amazon Simple Notification Service
Developer Guide (API Version 2010-03-31)

http://docs.aws.amazon.com/sns/latest/dg/mobile-push-api.html

Using Amazon SNS Mobile Push APIs

Amazon SNS モバイルPush APIを使うためには、APNsやGCMなどのPush通知サービスの事前準備を行っておく必要があります。詳細情報についてはPrerequisitesのページを参照。
Amazon SNSのAPIを使ってモバイル機器へとPush通知を送るためには、最初にCreatePlatformApplicationアクションを実行しておく必要があります。CreatePlatoformApplictionアクションはPlatformApplitionArmを返すので、これを使ってCreatePlatformEndpointアクションを実行し、最終的に通知実行に必要なEndpointArnを取得できます。

EndpointArnの用途は

  • PublishアクションにEndpointArnを指定して通知メッセージを送信する
  • SubscribeアクションにEndpointArnを指定してトピックにEndpointを紐付ける

以下はAmazon SNSのモバイルPush APIについてのAPI一覧とその解説です。
APIDescription
CreatePlatformApplicationAPNsやGCMのようなPush通知サービスをサポートするplatform applicationオブジェクトを作成し、モバイル機器を登録できるようにします。
APIの戻り値としてはPlatformApplicationArnがあり、これはCreatePlatformEndpointアクションで利用されます。 詳細はAmazon SNS  APIリファレンスの、CreatePlotformApplicationの項目を参照。
SetPlatformApplicationAttributesplatform applicationオブジェクトに各属性値をセットします。
詳細はAmazon SNS APIリファレンスのSetPlatformApplicationAttributesの項目を参照。
GetPlatformApplicationAttributesplatform applicationオブジェクトの属性値を取得します。詳細はAmazon SNS APIリファレンスのGetPlatformApplicationAttributesの項目を参照。
ListPlatformApplicationsAmazonSNSがサポートしているPush通知サービスに関して、AWSアカウントで作成済みのplatform applicationオブジェクトの一覧を取得します。詳細はAmazon SNS APIリファレンスのListPlatformApplicationsの項目を参照。
DeletePlatformApplicationplatform applicationオブジェクトを削除します。 詳細はAmazon SNS APIリファレンスのDeletePlatformApplicationの項目を参照。
CreatePlatformEndpointAmazonSNSがサポートしているPush通知サービスに関して、モバイル機器用のエンドポイントを作成します。CreatePlatformEndpointアクションには、CreatePlatformApplicationアクションが返すPlatformApplicationArnを入力します。このアクションが返すEndpointArnは、Publishアクションで通知メッセージをモバイル機器へ送信する際に使われます。詳細はAmazon SNS APIリファレンスのCreatePlatformEndpointの項目を参照。

SetEndpointAttributesエンドポイントへモバイル機器やアプリに関する属性をセットします。詳細はAmazon SNS APIリファレンスのSetEndpointAttributesの項目を参照。
GetEndpointAttributesエンドポイントに紐づく情報を取得します。詳細はAmazon SNS APIリファレンスのGetEndpointAttributesの項目を参照。
ListEndpointsByPlatformApplicationAmazonSNSがサポートしているPush通知サービスに関して、エンドポイントをリストとして取得します。詳細はAmazon SNS APIリファレンスのListEndointsByPlatformApplicationの項目を参照。
DeleteEndpointAmazonSNSがサポートしているPush通知サービスに関して、エンドポイントを削除します。詳細はAmazon SNS APIリファレンスのDeleteEndpointの項目を参照。

まとめ

  • 通知を送るにはEndpointArnを指定する
    • もしくはエンドポイントとトピックを紐付けておく
  • EndpointArnを作成するには事前にPlatformApplicationArnを作っておく
    • PlatformAPplicationArnは各通知サービスごとに作成する
      • ADM、APNs本番、APNs砂場、GCM
  • 作成したエンドポイントには端末やアプリの情報を紐付けておくことができる
  • エンドポイントは削除できる(ただし、EndpointArnの指定が必要)
  • platform applicationを削除した際に、紐づくエンドポイントも連動して削除されるかは不明

2013年10月13日日曜日

Amazon SNS Mobile Push Notifications のDeveloper Guide 日本語訳


日本語訳したドキュメント


Amazon Simple Notification Service
Developer Guide (API Version 2010-03-31)

http://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html




以下、訳した文章

Amazon SNS Mobile Push Notifications

Amazon SNSによりモバイル機器上のアプリへ通知メッセージを送ることができます。AWS上の“モバイルエンドポイント” へ送られた通知メッセージは、モバイル機器上ののアラート文言、バッジ、サウンドなどの形態で受け取られることになります。 モバイル機器への通知サービスがとして、以下に挙げるサービスが利用できます。
  • Apple Push Notification Service (APNS)
  • Google Cloud Messaging for Android (GCM)
  • Amazon Device Messaging (ADM)

以下の図はAmazon SNS がモバイルエンドポイントへ送られた通知メッセージが如何にしてモバイル機器へと届けるのか、その全体図を示します。

訳者注: Publisher = 通知の送信側 ,    Subscriber=通知を受信するモバイル機器

APNsやGCMのような通知サービスは、モバイル機器とのコネクションを保持しています。アプリとモバイル機器が通知サービスに登録されると、通知サービスはデバイストークンという端末を識別する情報を発行します。Amazon SNSはPublisher(通知送信側)からの通知要求を受け付けるために、デバイストークンを使ってモバイルエンドポイントを作成します。Amazon SNSがPublisherに変わって通知サービスとの通信するため、通信に用いるSSLの秘密鍵などの情報はAmazon SNSに前もって登録しておきます。
通常のエンドポイント指定の通知送信に加えて、”トピック”という機能を利用できます。 モバイルエンドポイントはトピックを購読することができ、トピックに通知メッセージを送ることでトピックに紐づくモバイルエンドポイントすべてへ通知を送ることができます。このため、AmazonSQS, HTTP/S、メール、SMSなどエンドポイントの種類が異なっていても、1つの通知の送信はトピックへ送信依頼の処理1回で済ませることができます。Push通知がメールなどの他のサービスと異なるのは、モバイル機器がメッセージを受信するまでの間にAppleやGoogle などの通知サービス提供者が入っていることです。以下の図はAmazon SNSのトピックを購読するモバイルエンドポイントの例です。 モバイルエンドポイントはAPNsやGCMを通じてアプリに通知メッセージを送りますが、メールなどその他の場合には直接SNSトピックから通知メッセージが送られます。


まとめ


  • 基本的に通知送信側はモバイルエンドポイントを宛先として知っていればよい
    • デバイストークンはAmazonSNS側で管理
    • SSL証明書などのパラメータは前もってAmazonSNSにアップロードしておく
  • 通知の送り先の指定方法として2種類ある
    • エンドポイントに送信
    • トピックへ送信(トピックに紐づくエンドポイントに送信)
  • トピックを使うと通知の種類をまたがった通知が簡単に実現できる
    • 例)iOSアプリにはAPNs、AndroidアプリにはGCM、PC版利用者にはメール
    • 例)iOSアプリ利用者にAPNsとメールを両方送る