プラットフォーム固有のペイロードを使用した Amazon SNS通知の発行 - Amazon Simple Notification Service

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

プラットフォーム固有のペイロードを使用した Amazon SNS通知の発行

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

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

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

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

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

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

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

次の例は、 FCMパラメータにカスタムデータキーと値のペアのtime_to_livecollapse_key後に FCMdataパラメータを含める方法を示しています。

{ "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 は、Android デバイスにモバイルプッシュ通知を送信APIするための Firebase Cloud Messaging (FCM) HTTP v1 をサポートするSNSようになりました。

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

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

FCM や など、複数のプラットフォームのデバイスにインストールされているアプリケーションにメッセージを送信するにはAPNs、まずモバイルエンドポイントを Amazon のトピックにサブスクライブSNSしてから、そのトピックにメッセージを公開する必要があります。

次の例は、APNs、、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\"}}" }

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

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

  • alert APNs 通知は、アラートメッセージの表示、音声の再生、またはアプリケーションのアイコンへのバッジの追加によってユーザーに通知します。

  • background APNs 通知は、ユーザーに通知することなく、通知の内容に基づいて行動するようにアプリケーションを起動または指示します。

APNs ヘッダーのカスタム値の指定

Amazon SNSPublishAPIアクション、または を使用して AWS SDKs、AWS.SNS.MOBILE.APNS.PUSH_TYPE予約済みメッセージ属性のカスタム値を指定することをお勧めします AWS CLI。次のCLI例ではcontent-available、指定されたトピックbackgroundについて を に1、 を apns-push-type に設定します。

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
注記

JSON 構造が有効であることを確認します。最後のキーと値のペアを除き、各キーと値のペアの後にカンマを追加します。

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

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

注記

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

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

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

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

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

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

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

      重要

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

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

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

この例では、Amazon はメッセージのapns-push-typeAPNsヘッダーを SNSに設定しますbackground。Amazon は、apnディクショナリに に設定されたcontent-availableキーが含まれ、ユーザーインタラクションをトリガーできる他のキーが含まれていないことSNSを検出する1と、ヘッダーを に設定しますbackground