メニュー
Amazon Simple Notification Service
開発者ガイド (API Version 2010-03-31)

メッセージでのカスタムプラットフォーム固有のペイロードのモバイルデバイスへの送信

Amazon SNS コンソールまたは API を使用して、メッセージのカスタムプラットフォーム固有のペイロードをモバイルデバイスに送信します。次のセクションでは、サポートされる通知サービスごとにカスタムプラットフォーム固有のペイロードを作成および送信するために、Amazon SNS コンソールを使用する方法について説明します。Amazon SNS API の使用の詳細については、「Amazon SNS モバイルプッシュ API の使用」および AWS のサンプルファイル SNSMobilePush.java を参照してください。このサンプルファイルは snsmobilepush.zip ファイルに含まれています。

JSON 形式のメッセージデータ

Amazon SNS コンソールを使用してメッセージでプラットフォーム固有のペイロードを送信する場合、データはキーと値のペア文字列で、引用符をエスケープした JSON 形式でフォーマットされている必要があります。次の例は、読みやすくするために書式とスペースが含まれていますが、メッセージ本文内にキーと値のペアがある GCM プラットフォーム用のサンプルのカスタムメッセージで、JSON 形式です。

Copy
{ "GCM":"{ "data":{ "message":"Check out these awesome deals!", "url":"www.amazon.com" } }" }
コンソールを使用してメッセージを送信する際には、次の例に示すように引用符をエスケープ (\") する必要があります。
Copy
{ "GCM":"{ \"data\":{ \"message\":\"Check out these awesome deals!\", \"url\":\"www.amazon.com\" } }" }
Amazon SNS コンソールに入力するときは、サンプルは次のようになります。
Copy
{ "GCM":"{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}" }

プラットフォーム固有のキーと値のペア

カスタムデータをキーと値のペアとして送信することに加えて、JSON ペイロード内でプラットフォーム固有のキーと値のペアを送信することもできます。たとえば、data GCMパラメータに含まれるカスタムデータのキーと値のペアの後に time_to_live および collapse_key GCM パラメータを含める場合、エスケープした引用符がない JSON ペイロードは次のようになります。

Copy
{ "GCM":"{ "data":{ "message":"Check out these awesome deals!", "url":"www.amazon.com" }, "time_to_live": 3600, "collapse_key": "deals" }" }
Amazon SNS コンソールへの入力時に、この例は次のようになります。
Copy
{ "GCM":"{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"},\"time_to_live\": 3600,\"collapse_key\":\"deals\"}" }

Amazon SNS でサポートされている各プッシュ通知サービスでサポートされているキーと値のペアのリストについては、以下のリンクを参照してください。

複数プラットフォーム上のアプリへのメッセージ

GCM や APNS など、複数プラットフォーム向けのデバイスにインストールされたアプリにメッセージを送信するには、Amazon SNS のトピックにモバイルエンドポイントを受信登録してから、トピックにメッセージを発行します。以下の例は、APNS、GCM、および ADM で受信登録したモバイルエンドポイントに送信するメッセージを示しています。

Copy
{ "default": "This is the default message which must be present when publishing a message to a topic. The default message will only be used if a message is not present for one of the notification platforms.", "APNS": "{\"aps\":{\"alert\": \"Check out these awesome deals!\",\"url\":\"www.amazon.com\"} }", "GCM":"{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}", "ADM": "{ \"data\": { \"message\": \"Check out these awesome deals!\",\"url\":\"www.amazon.com\" }}" }