Publicación con carga específica de la plataforma - Amazon Simple Notification Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Publicación con carga específica de la plataforma

Puedes utilizar la función Consola de administración de AWS o bien Amazon SNS APIs para enviar mensajes personalizados con cargas específicas de la plataforma a dispositivos móviles. Para obtener información sobre el uso de la Amazon SNS APIs, consulte Acciones de la API de inserción en móvil y SNSMobilePush.java archivo en snsmobilepush.zip.

Envío de mensajes con formato JSON

Cuando envíe cargas específicas de la plataforma, los datos deben tener un formato de cadenas de pares de clave-valor JSON, con las comillas incluidas entre caracteres de escape.

Los siguientes ejemplos muestran un mensaje personalizado para la plataforma de FCM.

{ "GCM":"{ \"notification\": { \"body\": \"Sample message for Android endpoints\", \"title\":\"TitleTest\" } }" }

Envío de mensajes específicos de la plataforma

Además de enviar datos personalizados como pares de clave-valor, puede enviar pares de clave-valor específicos de la plataforma.

En el siguiente ejemplo se muestra la inclusión de los parámetros de FCM time_to_live y collapse_key detrás de los pares de clave-valor de los datos personalizados del parámetro de FCM data.

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

Para obtener una lista de los pares de clave-valor admitidos en cada uno de los servicios de notificaciones push admitidos en Amazon SNS, consulte lo siguiente:

Envío de mensajes a una aplicación en varias plataformas

Para enviar un mensaje a una aplicación instalada en dispositivos de varias plataformas, como FCM y APNs, primero debe suscribir los puntos de enlace móviles a un tema de Amazon SNS y, a continuación, publicar el mensaje en el tema.

El siguiente ejemplo muestra un mensaje que debe enviarse a puntos de enlace móviles suscritos en APNs, FCM y 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\"}}" }

Envío de mensajes a APNs como alertas o notificaciones en segundo plano

Amazon SNS puede enviar mensajes a APNs como notificaciones alert o background (para obtener más información, consulte Inserción de actualizaciones en segundo plano en su aplicación en la documentación de APNs).

  • Una notificación alert de APNs informa al usuario mostrando un mensaje de alerta, reproduciendo un sonido o añadiendo una insignia al icono de la aplicación.

  • Una notificación background de APNs se activa o indica a la aplicación que actúe en función del contenido de la notificación, sin informar al usuario.

Especificación de valores de encabezado de APNs personalizados

Recomendamos especificar valores personalizados para el AWS.SNS.MOBILE.APNS.PUSH_TYPE atributo de mensaje reservado con Amazon SNS Publish Acción de API, AWS SDKs, o el AWS CLI. En el siguiente ejemplo de la CLI content-available se establece como 1 y background como apns-push-type para el tema 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.PRIORITY":{"DataType":"String","StringValue":"10"}}', \ "AWS.SNS.MOBILE.APNS.PUSH_TYPE":{"DataType":"String","StringValue":"background"} \ --message-structure json

Inferencia del encabezado de tipo de inserción de APNs desde la carga

Si no establece el encabezado apns-push-type de APNs, Amazon SNS establece el encabezado en alert o background dependiendo de la clave content-available en el diccionario de aps de su configuración de carga de APNs con formato JSON.

nota

Amazon SNS se puede inferir solo en encabezados alert o background, aunque el encabezado apns-push-type se puede establecer en otros valores.

  • apns-push-type está establecido en alert

    • Si el diccionario aps contiene content-available defina en 1 y una o varias claves que activan las interacciones del usuario.

    • Si el diccionario aps contiene content-available defina en 0 o si la clave content-available está ausente.

    • Si el valor de la clave content-available no es un entero o un booleano.

  • apns-push-type está establecido en background

    • Si el diccionario deaps sólo contiene content-available establecida en 1 y no hay otras claves que desencadenen las interacciones del usuario.

      importante

      Si Amazon SNS envía un objeto de configuración sin formato para APNs como notificación solo en segundo plano, debe incluir el content-available definido en 1 en el diccionario de aps. Aunque puede incluir claves personalizadas, el diccionario de aps no debe contener ninguna clave que desencadene las interacciones del usuario (por ejemplo, alertas, insignias o sonidos).

A continuación se muestra un ejemplo de objeto de configuración sin procesar.

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

En este ejemplo, Amazon SNS establece el apns-push-type APNs para el mensaje a background. ¿Cuándo? Amazon SNS detecta que el apn contiene el content-available de llave establecido en 1—y no contiene ninguna otra clave que pueda desencadenar interacciones de usuario—establece el encabezado en background.