Amazon Simple Notification Service
開発者ガイド

受信者がモバイルアプリケーションの場合のユーザー通知に Amazon SNS を使用する (モバイルプッシュ)

Amazon SNS によって、モバイルデバイスのアプリケーションにプッシュ通知メッセージを直接送信できます。モバイルエンドポイントに送信されたプッシュ通知メッセージは、メッセージアラート、バッジ更新、または音声アラートとしてモバイルアプリケーションに表示できます。

ユーザー通知の仕組み

以下のサポートされているプッシュ通知サービスのいずれかを使用して、モバイルデバイスとデスクトップの両方にプッシュ通知メッセージを送信します。

  • Amazon Device Messaging (ADM)

  • iOS および Mac OS X 用の Apple Push Notification Service (APNS)

  • Baidu Cloud Push (Baidu)

  • Android 用 Google クラウドメッセージング (FCM)

  • Windows Phone 用 Microsoft プッシュ通知サービス (MPNS)

  • Windows プッシュ通知サービス (WNS)

次の図は、モバイルエンドポイントに直接プッシュ通知メッセージを送信するために Amazon SNS を使用する方法の概要を示しています。

APNS や FCM などのプッシュ通知サービスは、各アプリケーションと、サービスを使用するために登録されている関連モバイルデバイスとの接続を維持します。アプリおよびモバイルデバイスの登録時に、プッシュ通知サービスはデバイストークンを返します。Amazon SNS はデバイストークンを使用して、モバイルエンドポイントを作成します。ここに直接プッシュ通知メッセージを送信できます。Amazon SNS が他のプッシュ通知サービスと通信できるようにするには、プッシュ通知サービス認証情報を Amazon SNS に送信して、代理で使用できるようにします。詳細については、「プロセスの概要」を参照してください。

直接プッシュ通知メッセージを送信するだけでなく、Amazon SNS を使用して、トピックにサブスクライブされているモバイルエンドポイントにメッセージを送信することもできます。このコンセプトは、「Amazon Simple Notification Service とは」に説明されているように、Amazon SQS、HTTP/S、E メール、SMS などその他のエンドポイントタイプをトピックにサブスクライブするのと同じです。違いは、Amazon SNS はサブスクライブされたモバイルエンドポイントがトピックに送信されたプッシュ通知メッセージを受信するためにプッシュ通知サービスを通じて通信を行うことです。次の図は、モバイルエンドポイントを Amazon SNS トピックへのサブスクライバーとして示しています。モバイルエンドポイントは、他のエンドポイントとは異なり、プッシュ通知サービスを使用して通信します。

前提条件

Amazon SNS モバイルプッシュ通知の使用を開始するには、以下が必要です。

  • サポートされているプッシュ通知サービスにいずれかに接続するための認証情報セット: ADM、APNS、Baidu、FCM、MPNS、または WNS。

  • モバイルアプリケーションやデバイスのデバイストークンまたは登録 ID。

  • モバイルエンドポイントにプッシュ通知メッセージを送信するように設定された Amazon SNS。

  • 登録済みで、サポートされているいずれかのプッシュ通知サービスを使用するように設定されたモバイルアプリケーション。

アプリケーションをプッシュ通知サービスに登録するには、いくつかのステップが必要です。Amazon SNS では、モバイルエンドポイントに直接プッシュ通知メッセージを送信するために、ユーザーがプッシュ通知サービスに対して指定する情報の一部が必要です。一般的に、プッシュ通知サービスに接続するための必須認証情報、プッシュ通知サービスから受け取ったデバイストークンまたは登録 ID(モバイルデバイスおよびモバイルアプリケーションを表すもの)、およびプッシュ通知サービスに登録されているモバイルアプリケーションが必要です。

認証情報の正確な形式はモバイルプラットフォームごとに異なりますが、どの場合も、これらの認証情報はプラットフォームに接続するときに送信する必要があります。モバイルアプリケーションごとに 1 つの認証情報セットが発行され、そのアプリケーションのどのインスタンスにメッセージを送信する際もその認証情報セットを使用する必要があります。

具体的な名前は、どのプッシュ通知サービスが使用されるかによって異なります。たとえば、プッシュ通知サービスとして APNS を使用する場合は、デバイストークンが必要になります。一方、FCM を使用する場合は、デバイストークンに相当するものが登録 ID と呼ばれます。デバイストークンまたは登録 IDは、モバイルデバイスのオペレーティングシステムによってアプリケーションに送信される文字列です。特定のモバイルデバイスで実行されるモバイルアプリのインスタンスを一意に識別するため、このアプリケーション/デバイスペアの一意識別子と考えることができます。

Amazon SNS は、認証情報 (および他のいくつかの設定) をプラットフォームアプリケーションリソースとして保存します。デバイストークン (ここでもいくつかの追加設定を使用) は、プラットフォームエンドポイントと呼ばれるオブジェクトとして表現されます。各プラットフォームエンドポイントは、1 つの特定のプラットフォームアプリケーションに属し、対応するプラットフォームアプリケーションに保存された認証情報を使用してすべてのプラットフォームアプリケーションと通信できます。

以降のセクションでは、サポートされているプッシュ通知サービスごとの前提条件が示されています。前提条件の情報を取得した後は、AWS マネジメントコンソール または Amazon SNS モバイルプッシュ API を使用して、プッシュ通知メッセージを送信できます。詳細については、「プロセスの概要」を参照してください。

プロセスの概要

Amazon SNS モバイルプッシュの使用を開始するには、最初に、サポートするモバイルプラットフォームの認証情報とデバイストークンを取得する必要があります。次に、モバイルプラットフォームの情報に基づき、Amazon SNS を使用してモバイルデバイスにメッセージを発行します。

ステップ 1: 認証情報をモバイルプラットフォームにリクエストする

Amazon SNS モバイルプッシュを使用するには、まず、必要な認証情報をモバイルプラットフォームにリクエストする必要があります。

ステップ 2: トークンをモバイルプラットフォームにリクエストする

次に、返された認証情報を使用して、モバイルアプリおよびデバイス用のトークンをモバイルプラットフォームにリクエストします。受け取ったトークンはモバイルアプリおよびデバイスの識別に使用されます。

ステップ 3: プラットフォームアプリケーションオブジェクトを作成する

続いて、認証情報とトークンを使用して、プラットフォームアプリケーションオブジェクト (PlatformApplicationArn) を Amazon SNS に作成します。詳細については、「プラットフォームエンドポイントの作成とデバイストークンの管理」を参照してください。

ステップ 4: プラットフォームエンドポイントオブジェクトを作成する

その後、PlatformApplicationArn を使用して、プラットフォームエンドポイントオブジェクト (EndpointArn) を Amazon SNS に作成します。詳細については、「プラットフォームエンドポイントの作成とデバイストークンの管理」を参照してください。

ステップ 5: メッセージをモバイルエンドポイントに発行する

最後に、EndpointArn を使用して、メッセージをモバイルデバイス上のアプリに発行します。詳細については、『Amazon Simple Notification Service API Reference』の「モバイルデバイスへのメッセージの直接的な送信」と「Publish API」を参照してください。