Envío de mensajes SMS en Amazon SNS con la versión 3 de AWS SDK for PHP - AWS SDK for PHP

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.

Envío de mensajes SMS en Amazon SNS con la versión 3 de AWS SDK for PHP

Puede utilizar Amazon Simple Notification Service (Amazon SNS) ara enviar mensajes de texto o mensajes SMS a dispositivos habilitados para recibir SMS. Dispone de la capacidad de enviar un mensaje directamente a un número de teléfono o de enviar un mensaje a varios números de teléfono a la vez suscribiendo dichos números de teléfono a un tema y enviando el mensaje al tema.

Utilice Amazon SNS para especificar las preferencias de mensajería SMS, como la forma en que se optimizan sus envíos (por coste o por fiabilidad de la entrega), su límite de gasto mensual, cómo se registran los envíos de mensajes y si desea suscribirse a informes de uso de SMS diarios. Estas preferencias se recuperan y se establecen como atributos SMS para Amazon SNS.

Cuando envíe un mensaje SMS, especifique el número de teléfono usando la formato E.164. E.164 es un estándar de estructura de número de teléfono utilizada para las telecomunicaciones internacionales. Los números de teléfono que aplican este formato pueden tener un máximo de 15 dígitos y van prefijados con el carácter (+) y el código de país. Por ejemplo, un número de teléfono de los EE. UU. en formato E.164 se mostraría como +1001XXX5550100.

Los siguientes ejemplos muestran cómo:

  • Recupere la configuración predeterminada para el envío de mensajes SMS desde su cuenta con GetSMSAttributes.

  • Actualice la configuración predeterminada para el envío de mensajes SMS desde su cuenta con SetSMSAttributes.

  • Descubre si el propietario de un número de teléfono determinado ha optado por no recibir mensajes SMS de tu cuenta mediante CheckIfPhoneNumberIS OptedOut.

  • Enumera los números de teléfono con los que el propietario ha optado por no recibir mensajes SMS de tu cuenta ListPhoneNumberOptedOut.

  • Envíe un mensaje de texto (mensaje SMS) directamente a un número de teléfono usando Publish.

Para obtener más información sobre cómo utilizar Amazon SNS, consulte Uso de Amazon SNS para notificaciones de usuario con un número de teléfono móvil como suscriptor (envío de SMS)..

Todos los códigos de ejemplo para AWS SDK for PHP el están disponibles aquí en GitHub.

Credenciales

Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Credentials. A continuación, importe AWS SDK for PHP, como se indica en Uso básico.

Obtención de atributos de SMS

Para recuperar la configuración predeterminada de mensajes SMS, utilice la operación GetSMSAttributes.

Este ejemplo obtiene el atributo DefaultSMSType. Este atributo controla si se envían mensajes SMS como Promotional, que optimiza la entrega de mensajes para conseguir el costo más bajo, o como Transactional, que optimiza el envío de mensajes para conseguir la máxima fiabilidad.

Importaciones

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

Código de muestra

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); try { $result = $SnSclient->getSMSAttributes([ 'attributes' => ['DefaultSMSType'], ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Establecimiento de atributos de SMS

Para actualizar la configuración predeterminada de mensajes SMS, utilice la operación SetSMSAttributes.

Este ejemplo establece el atributo DefaultSMSType en Transactional, que optimiza el envío de mensajes para conseguir la máxima fiabilidad.

Importaciones

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

Código de muestra

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); try { $result = $SnSclient->SetSMSAttributes([ 'attributes' => [ 'DefaultSMSType' => 'Transactional', ], ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Comprobación de si se ha desactivado un número de teléfono

Para determinar si el propietario de un número de teléfono determinado ha optado por no recibir mensajes SMS de su cuenta, utilice la CheckIfPhoneNumberIsOptedOutoperación.

En este ejemplo, el número de teléfono está en formato E.164, un estándar utilizado para las telecomunicaciones internacionales.

Importaciones

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

Código de muestra

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); $phone = '+1XXX5550100'; try { $result = $SnSclient->checkIfPhoneNumberIsOptedOut([ 'phoneNumber' => $phone, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Lista de números de teléfono desactivados

Para recuperar una lista de números de teléfono en los que el propietario ha optado por no recibir mensajes SMS de tu cuenta, utiliza la ListPhoneNumbersOptedOutoperación.

Importaciones

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

Código de muestra

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); try { $result = $SnSclient->listPhoneNumbersOptedOut(); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Publicación en un mensaje de texto (mensaje SMS)

Para entregar un mensaje de texto (mensaje SMS) directamente a un número de teléfono, utilice la operación Publish.

En este ejemplo, el número de teléfono está en formato E.164, un estándar utilizado para las telecomunicaciones internacionales.

Los mensajes SMS puede contener hasta 140 bytes. El límite de tamaño de una sola acción de publicación SMS es de 1600 bytes.

Para obtener más información sobre cómo enviar mensajes SMS, consulte Envío de un mensaje SMS.

Importaciones

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

Código de muestra

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); $message = 'This message is sent from a Amazon SNS code sample.'; $phone = '+1XXX5550100'; try { $result = $SnSclient->publish([ 'Message' => $message, 'PhoneNumber' => $phone, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }