플랫폼별 페이로드를 사용하여 Amazon SNS 알림 게시 - Amazon Simple Notification Service

플랫폼별 페이로드를 사용하여 Amazon SNS 알림 게시

AWS Management 콘솔 또는 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_livecollapse_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로 마이그레이션하는 것이 좋습니다.

다중 플랫폼의 애플리케이션으로 메시지 전송 중

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 SNS Publish API 작업, AWS SDK 또는 AWS CLI를 사용하여 AWS.SNS.MOBILE.APNS.PUSH_TYPE 예약된 메시지 속성에 대한 사용자 지정 값을 지정하는 것이 좋습니다. 다음 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
참고

JSON 구조가 유효한지 확인합니다. 마지막 키를 제외한 각 키-값 페어 뒤에 쉼표를 추가합니다.

페이로드에서 APNS 푸시 유형 헤더 추론

apns-push-type APNS 헤더를 설정하지 않으면 Amazon SNS에서 JSON 형식 APNS 페이로드 구성의 aps 사전에 있는 content-available 키에 따라 헤더를 alert 또는 background로 설정합니다.

참고

Amazon SNS는 alert 또는 background 헤더만 유추할 수 있지만 apns-push-type 헤더는 다른 값으로 설정할 수 있습니다.

  • apns-push-type를 (으)로 설정합니다.alert

    • aps 사전에 1로 설정된 content-available과 사용자 상호 작용을 트리거하는 하나 이상의 키가 포함되어 있는 경우.

    • aps 사전에 0으로 설정된 content-available이 포함되어 있거나 또는 content-available 키가 없는 경우.

    • content-available 키의 값이 정수 또는 부울이 아닌 경우.

  • apns-push-type다음의 경우 이 로 설정됩니다.background

    • aps 사전에 1로 설정된 content-available 포함되어 있고 사용자 상호 작용을 트리거하는 다른 키가 없는 경우입니다.

      중요

      Amazon SNS에서 APNS에 대한 원시 구성 객체를 백그라운드 전용 알림으로 전송하는 경우, 1로 설정된 content-availableaps 사전에 포함해야 합니다. 사용자 지정 키를 포함할 수 있지만 aps 사전에는 사용자 상호 작용을 트리거하는 키(예: 경보, 배지 또는 사운드)를 포함할 수 없습니다.

다음은 원시 구성 객체의 예입니다.

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

이 예에서 Amazon SNS는 메시지에 대한 apns-push-type APNS 헤더를 background로 설정합니다. Amazon SNS는 apn 사전에 1로 설정된 content-available 키가 포함되어 있고 사용자 상호 작용을 트리거할 수 있는 다른 키가 포함되어 있지 않음을 감지하면 헤더를 background로 설정합니다.