sns que precio notification example aws activar php ios push-notification amazon amazon-sns

php - precio - que es amazon sns



Enviar iOS pushnotifications en formato JSON a través de Amazon SNS (3)

¡Pude resolver el problema!

El siguiente código hizo el truco, mis intentos anteriores no crearon ni una buena json-string (nótese que hay dos json_encodes allí) o no tenían la clave json "predeterminada" que se requiere.

$message = json_encode(array( ''default'' => $message, ''APNS'' => json_encode(array( ''aps'' => array( ''alert'' => array(''body'' => $id, ''action-loc-key'' => ''read this'', ''loc-key'' => ''%@'', ''loc-args'' => array($message)), ), ''badge'' => ''0'', ''sound'' => ''default'', ''content-available'' => ''1'' )) )); $result = $snsClient->publish(array( ''TargetArn'' => $target, ''MessageStructure'' => ''json'', ''Message'' => $message ));

Estoy en la tarea de migrar mi propio servicio push de iOS a Amazon SNS. Previamente estaba presionando mensajes a través de nuestro propio servidor, que ya no es suficiente.

El backend está construido con PHP y este es un código de cómo envío una pushnotification con la solución anterior:

$body = array( ''alert'' => array(''body'' => $id, ''action-loc-key'' => ''read this'', ''loc-key'' => ''%@'', ''loc-args'' => array($message)), ''badge'' => ''0'', ''sound'' => ''default'', ''content-available'' => ''1'' );

Ese es el cuerpo de la notificación que envié. Ahora quiero que se envíe la misma notificación a través del SNS, con el AWS PHP SDK publish-method .

Me he dado cuenta de que tengo que enviar la pushnotification a través de esto:

$result = $snsClient->publish(array( ''TargetArn'' => $target, // Message is required ''Message'' => $message, ''MessageStructure'' => ''json'' ));

¿Cuál sería $ mensaje, en el ejemplo de código de arriba? ¡Toda ayuda es apreciada!

Editar: he enviado correctamente la pushnotification a través del panel de SNS con el siguiente JSON. Mi problema es reproducir esto a través del PHP SDK.

{"APNS": "{/" aps / ": {/" alerta / ": {/" cuerpo / ": /" 7500 / ", /" acción-loc-key / ": /" leer esto / ", / "loc-key /": / "% @ /", / "loc-args /": [/ "Mensaje /"]}, / "insignia /": / "0 /", / "sonido /": / "default /", / "content-available /": / "1 /"}} "}


No sé si esto funcionaría para sus propósitos, pero en el tablero AWS SNS API para enviar un solo mensaje, el formato es el siguiente:

{"APNS_SANDBOX": "{/"aps/": {/"alert/":/"HERE IS AN ALERT, BADGE, and SOUND!/",/"badge/": 1,/"sound/":/"bingbong.aiff/"}}"}

Para enviar a un tema en el tablero, use una cadena como esta:

{ "default": "HERE IS AN ALERT, BADGE, and SOUND", "APNS_SANDBOX": "{/"aps/": {/"alert/":/"HERE IS AN ALERT, BADGE, and SOUND!/",/"badge/": 1,/"sound/":/"bingbong.aiff/"}}" }

Las citas escapadas son obligatorias al enviar desde el panel.

Cuando envíe a producción, reemplace APNS_SANDBOX con APNS


Saliendo de la respuesta de GrapplingCoder, aquí está el JSON para enviar una notificación básica de inserción con texto que usa el sonido de notificación predeterminado:

{ "APNS": "{/"aps/":{/"alert/": /"This is your message text!/",/"sound/":/"default/"} }" }