プラットフォーム固有のペイロードによる公開 - Amazon Simple Notification Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

プラットフォーム固有のペイロードによる公開

AWS Management Console または Amazon SNS API を使用して、プラットフォーム固有のペイロードを含むカスタムメッセージをモバイルデバイスに送信できます。Amazon SNS API の使用については、モバイルプッシュ API アクション および snsmobilepush.zipSNSMobilePush.java ファイルを参照してください。

JSON 形式のメッセージの送信

プラットフォーム固有のペイロードを送信する場合、データは引用符をエスケープした、JSON キーと値のペア文字列である必要があります。

次の例では、FCM プラットフォーム用のカスタムメッセージを示します。

{ "GCM": "{\"fcmV1Message\": {\"message\": {\"notification\": {\"title\": \"Hello\", \"body\": \"This is a test.\"}, \"data\": {\"dataKey\": \"example\"}}}}" }

プラットフォーム固有のメッセージを送信する

カスタムデータをキーと値のペアとして送信することに加えて、プラットフォーム固有のキーと値のペアを送信できます。

次の例では、FCM data パラメータのカスタムデータのキーと値のペアの後に、FCM パラメータ time_to_live および collapse_key を含めています。

{ "GCM": "{\"fcmV1Message\": {\"message\": {\"notification\": {\"title\": \"TitleTest\", \"body\": \"Sample message for Android or iOS endpoints.\"}, \"data\":{\"time_to_live\": 3600,\"collapse_key\":\"deals\"}}}}" }

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

重要

Amazon SNS は、Android デバイスにモバイルプッシュ通知を送信するための Firebase クラウドメッセージング (FCM) HTTP v1 API をサポートするようになりました。

2024 年 3 月 26 日 — Amazon SNS は Apple デバイスと Webpush の送信先用の FCM HTTP v1 API をサポートしています。アプリケーションの中断を避けるため、2024 年 6 月 1 日またはそれ以前に既存のモバイルプッシュアプリケーションを最新の FCM HTTP v1 API に移行することをお勧めします。

複数プラットフォーム上のアプリケーションへのメッセージ送信

FCM や APN など、複数プラットフォーム向けのデバイスにインストールされたアプリケーションにメッセージを送信するには、Amazon SNS のトピックにモバイルエンドポイントをサブスクリプションしてから、トピックにメッセージを発行します。

次の例は、APN、FCM、および ADM でサブスクリプションしたモバイルエンドポイントに送信するメッセージを示しています。

{ "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\"}}" }

アラートまたはバックグラウンド通知としてのメッセージを APN に送信する

Amazon SNS は APN にメッセージを alert または background 通知 (詳細については、APN のドキュメントの「バックグラウンド更新をアプリケーションにプッシュする」を参照してください)。

  • alert APN 通知では、ユーザーに通知する方法として、アラートメッセージを表示するか、サウンドを鳴らすか、アプリケーションのアイコンにバッジを追加します。

  • background APN 通知は、ユーザーに通知することなく、ウェイクアップするか、通知の内容に基づいて動作するようにアプリケーションに指示します。

APN ヘッダーのカスタム値を指定する

Amazon SNS Publish API アクション、 AWS SDK、またはを使用して、AWS.SNS.MOBILE.APNS.PUSH_TYPEリザーブドメッセージ属性のカスタム値を指定することをお勧めします。 AWS CLI次の CLI の例では、指定したトピックの content-available1 に設定し、apns-push-typebackground に設定します。

aws sns publish \ --endpoint-url https://sns.us-east-1.amazonaws.com \ --target-arn arn:aws:sns:us-east-1:123456789012:endpoint/APNS_PLATFORM/MYAPP/1234a567-bc89-012d-3e45-6fg7h890123i \ --message '{"APNS_PLATFORM":"{\"aps\":{\"content-available\":1}}"}' \ --message-attributes '{ \ "AWS.SNS.MOBILE.APNS.TOPIC":{"DataType":"String","StringValue":"com.amazon.mobile.messaging.myapp"}, \ "AWS.SNS.MOBILE.APNS.PUSH_TYPE":{"DataType":"String","StringValue":"background"} \ "AWS.SNS.MOBILE.APNS.PRIORITY":{"DataType":"String","StringValue":"5"}}', \ --message-structure json

ペイロードからの APN プッシュタイプヘッダーを推測する

apns-push-type APNヘッダーを設定しないと、JSON 形式の APN ペイロードに設定されている aps ディクショナリ内の content-available キーに応じて、Amazon SNS がヘッダーを alert または background に設定します。

注記

apns-push-type ヘッダーは他の値に設定できますが、Amazon SNS が推測できるのは alert ヘッダーまたは background ヘッダーのみです。

  • apns-push-type は、alert に設定されます。

    • aps ディクショナリで content-available1 に設定されていて、ユーザーの操作をトリガーする 1 つ以上のキーが含まれている場合。

    • aps ディクショナリで content-available0 に設定されているか、または content-available キーが存在しない場合。

    • content-available キーの値が整数またはブール値でない場合。

  • apns-push-type は、background に設定されます。

    • aps ディクショナリに 1 に設定された content-available のみが含まれ、ユーザーの操作をトリガーする他のキーが含まれていない場合。

      重要

      Amazon SNSが APN の raw 設定オブジェクトをバックグラウンドのみの通知として送信する場合は、content-available1 に設定して aps ディクショナリに含める必要があります。カスタムキーを含めることもできますが、ユーザー操作をトリガーするキー (アラート、バッジ、サウンドなど) を aps ディクショナリに含めることはできません。

raw 設定オブジェクトの例を次に示します。

{ "APNS": "{\"aps\":{\"content-available\":1},\"Foo1\":\"Bar\",\"Foo2\":123}" }

この例の場合、Amazon SNS はメッセージの apns-push-type APN ヘッダーを background に設定します。Amazon SNS が apn ディクショナリが 1 に設定された content-available キーを含み、ユーザー操作をトリガーする他のキーを含まないことを検出すると、Amazon SNS はヘッダーを background に設定します。