Publicar notificações do Amazon SNS com cargas úteis específicas da plataforma - Amazon Simple Notification Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Publicar notificações do Amazon SNS com cargas úteis específicas da plataforma

Você pode usar o AWS Management Console Amazon SNS APIs para enviar mensagens personalizadas com cargas específicas da plataforma para dispositivos móveis. Para obter informações sobre o uso do Amazon SNS APIs, consulte Ações da API de push para dispositivos móveis e o SNSMobilePush.java arquivo em. snsmobilepush.zip

Enviar mensagens formatadas em JSON

Ao enviar cargas específicas à plataforma, os dados devem estar formatados como strings de par de chave/valor JSON, com aspas em sequência de escape.

Os exemplos a seguir mostram uma mensagem personalizada para a plataforma do FCM.

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

Enviar mensagens específicas à plataforma

Além de enviar dados personalizados como pares de chave/valor, é possível enviar pares de chave/valor específicos à plataforma.

O exemplo a seguir mostra a inclusão dos parâmetros time_to_live e collapse_key do FCM depois dos pares de chave/valor de dados personalizados no parâmetro data do FCM.

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

Para obter uma lista dos pares de chave/valor compatíveis em cada um dos serviços de notificação push compatíveis com o Amazon SNS, consulte o seguinte:

Importante

O Amazon SNS agora oferece suporte à API HTTP v1 do Firebase Cloud Messaging (FCM) para enviar notificações push móveis para dispositivos Android.

26 de março de 2024: o Amazon SNS oferece suporte à API HTTP v1 do FCM para dispositivos Apple e destinos Webpush. Recomendamos que você migre suas aplicações móveis por push existentes para a API mais recente do FCM HTTP v1 até 1º de junho de 2024 para evitar interrupções nas aplicações.

Enviar mensagens para um aplicativo em várias plataformas

Para enviar uma mensagem para um aplicativo instalado em dispositivos de várias plataformas, como o FCM e APNs, você deve primeiro inscrever os endpoints móveis em um tópico no Amazon SNS e depois publicar a mensagem no tópico.

O exemplo a seguir mostra uma mensagem para enviar aos endpoints móveis inscritos no FCM APNs e no 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\"}}" }

Envio de mensagens APNs como alerta ou notificações em segundo plano

O Amazon SNS pode enviar mensagens para APNs as alert ou background notificações (para obter mais informações, consulte Enviando atualizações em segundo plano para seu aplicativo na APNs documentação).

  • Uma alert APNs notificação informa o usuário exibindo uma mensagem de alerta, reproduzindo um som ou adicionando um selo ao ícone do seu aplicativo.

  • Uma background APNs notificação ativa ou instrui seu aplicativo a agir de acordo com o conteúdo da notificação, sem informar o usuário.

Especificando valores de APNs cabeçalho personalizados

Recomendamos especificar valores personalizados para o atributo de mensagem AWS.SNS.MOBILE.APNS.PUSH_TYPE reservada usando a ação AWS SDKs da API do Amazon Publish SNS ou o. AWS CLI O exemplo da CLI a seguir define content-available como 1 e apns-push-type como background para o tópico especificado.

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
nota

Certifique-se de que a estrutura JSON seja válida. Adicione uma vírgula após cada par chave-valor, exceto o último.

Inferindo o cabeçalho do tipo APNs push a partir da carga

Se você não definir o apns-push-type APNs cabeçalho, o Amazon SNS define o cabeçalho como alert ou background dependendo da content-available chave no aps dicionário da sua configuração de carga em formato JSON APNs .

nota

O Amazon SNS é capaz de inferir somente os cabeçalhos alert ou background, embora o cabeçalho apns-push-type possa ser definido com outros valores.

  • apns-push-type é definido como alert

    • Se o dicionário aps contiver content-available definida como 1 e uma ou mais chaves que acionem interações do usuário.

    • Se o dicionário aps contiver content-available definida como 0 ou se a chave content-available estiver ausente.

    • Se o valor da chave content-available não for um inteiro ou um booliano.

  • apns-push-type é definido como background

    • Se o dicionário aps contiver somente a variável content-available definida como 1 e nenhuma outra chave que acione interações com o usuário.

      Importante

      Se o Amazon SNS enviar um objeto de configuração bruto APNs como uma notificação somente em segundo plano, você deverá incluir content-available set to no dicionário. 1 aps Embora você possa incluir chaves personalizadas, o dicionário aps não deve conter chaves que acionem interações do usuário (por exemplo, alertas, distintivos ou sons).

Veja a seguir um exemplo de objeto de configuração bruto.

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

Neste exemplo, o Amazon SNS define o apns-push-type APNs cabeçalho da mensagem como. background Quando o Amazon SNS detecta que o dicionário apn contém a chave content-available definida como 1 e não contém nenhuma outra chave que possa acionar interações do usuário, ele define o cabeçalho como background.