翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
プラットフォーム固有のペイロードを使用した Amazon SNS 通知の発行
AWS Management Console または Amazon SNS API を使用して、プラットフォーム固有のペイロードを含むカスタムメッセージをモバイルデバイスに送信できます。 APIs Amazon SNS API の使用については、モバイルプッシュ API アクション および snsmobilepush.zip
の SNSMobilePush.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 Cloud Messaging (FCM) HTTP v1 API をサポートするようになりました。
2024 年 3 月 26 日、Amazon SNS は、Apple デバイスと Webpush 送信先用の FCM HTTP v1 API をサポートします。アプリケーションの中断を避けるため、2024 年 6 月 1 日またはそれ以前に、既存のモバイルプッシュアプリケーションを最新の FCM HTTP v1 API に移行することをお勧めします。
-
APN ドキュメントのペイロードキーのリファレンス
-
FCM ドキュメントのFirebase Cloud Messaging HTTP プロトコル
-
ADM ドキュメントのメッセージの送信
複数プラットフォーム上のアプリケーションへのメッセージ送信
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 SDKs、または を使用して、AWS.SNS.MOBILE.APNS.PUSH_TYPE
予約済みメッセージ属性のカスタム値を指定することをお勧めします AWS CLI。次の CLI の例では、指定したトピックの content-available
を 1
に設定し、apns-push-type
を background
に設定します。
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 構造が有効であることを確認します。キーと値の各ペアの後 (最後のペア以外) にカンマを追加します。
ペイロードからの 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-available
が1
に設定されていて、ユーザーの操作をトリガーする 1 つ以上のキーが含まれている場合。 -
aps
ディクショナリでcontent-available
が0
に設定されているか、またはcontent-available
キーが存在しない場合。 -
content-available
キーの値が整数またはブール値でない場合。
-
-
apns-push-type
は、background
に設定されます。-
aps
ディクショナリに1
に設定されたcontent-available
のみが含まれ、ユーザーの操作をトリガーする他のキーが含まれていない場合。重要
Amazon SNSが APN の raw 設定オブジェクトをバックグラウンドのみの通知として送信する場合は、
content-available
を1
に設定して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
に設定します。