플랫폼별 페이로드를 사용한 게시 - 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_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는 이제 안드로이드 디바이스에 모바일 푸시 알림을 전송하기 위한 파이어베이스 클라우드 메시징 (FCM) HTTP v1 API를 지원합니다.

2024년 3월 26일 — Amazon SNS는 애플 디바이스 및 웹푸시 대상을 위한 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.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

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

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

참고

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

  • 다음의 경우 apns-push-typealert로 설정됩니다.

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

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

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

  • 다음의 경우 apns-push-typebackground로 설정됩니다.

    • 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로 설정합니다.