

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 con Notify
<a name="notify-send-messages"></a>

Notify ofrece dos opciones APIs para enviar mensajes:
+ `SendNotifyTextMessage`— Envía un mensaje SMS mediante una plantilla previamente aprobada.
+ `SendNotifyVoiceMessage`— Envía una llamada de voz que lee el contenido de la plantilla text-to-speech utilizada.

## Envío de un mensaje SMS
<a name="notify-send-text"></a>

------
#### [ Console ]

1. Abra la consola de SMS de mensajería para el usuario AWS final en [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).

1. Navegue hasta una configuración de Notify y elija la pestaña **Probar**.

1. Para el canal, selecciona **Texto**.

1. Seleccione una plantilla de la tabla de plantillas.

1. Introduzca el número de teléfono de destino en formato E.164.

1. Rellene las variables de la plantilla.

1. Seleccione **Enviar**.

------
#### [ AWS CLI ]

```
aws pinpoint-sms-voice-v2 send-notify-text-message \
  --notify-configuration-id {{nc-1234567890abcdef0}} \
  --destination-phone-number {{+12065550100}} \
  --template-id {{notify-code-verification-english-001}} \
  --template-variables '{"code":"123456"}'
```

------
#### [ Python (boto3) ]

```
import boto3

client = boto3.client('pinpoint-sms-voice-v2')

response = client.send_notify_text_message(
    NotifyConfigurationId='nc-1234567890abcdef0',
    DestinationPhoneNumber='+12065550100',
    TemplateId='notify-code-verification-english-001',
    TemplateVariables={
        'code': '123456'
    }
)

print(f"Message sent. MessageId: {response['MessageId']}")
print(f"Resolved body: {response.get('ResolvedMessageBody')}")
```

------

## Envío de un mensaje de voz
<a name="notify-send-voice"></a>

Los mensajes de voz requieren que el `VOICE` canal esté habilitado en la configuración de Notify.

**sugerencia**  
En el caso de los mensajes de voz, separe los dígitos con puntos o espacios (por ejemplo`"1. 2. 3. 4. 5. 6."`) para que el text-to-speech motor lea cada dígito individualmente en lugar de hacerlo como un número único.

------
#### [ Console ]

1. Abra la consola de SMS de mensajería para usuarios AWS finales en [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).

1. Navegue hasta una configuración de Notify y elija la pestaña **Probar**.

1. Para el canal, selecciona **Voz**.

1. Selecciona una plantilla de voz de la tabla de plantillas.

1. Introduzca el número de teléfono de destino y rellene las variables de la plantilla.

1. Seleccione **Enviar**.

------
#### [ AWS CLI ]

```
aws pinpoint-sms-voice-v2 send-notify-voice-message \
  --notify-configuration-id {{nc-1234567890abcdef0}} \
  --destination-phone-number {{+12065550100}} \
  --template-id {{notify-code-verification-english-001}} \
  --template-variables '{"code":"123456"}' \
  --voice-id JOANNA
```

------

## DryRun Modo de uso
<a name="notify-send-dryrun"></a>

`DryRun``true`Configúrelo en para validar una solicitud de envío sin entregar realmente el mensaje. DryRun mode comprueba la validación de las variables de la plantilla, las restricciones nacionales y los límites de gasto, pero no envía el mensaje ni lo deduce del límite de gasto.

```
aws pinpoint-sms-voice-v2 send-notify-text-message \
  --notify-configuration-id {{nc-1234567890abcdef0}} \
  --destination-phone-number {{+12065550100}} \
  --template-id {{notify-code-verification-english-001}} \
  --template-variables '{"code":"123456"}' \
  --dry-run
```

## Envía los parámetros de la solicitud
<a name="notify-send-parameters"></a>

Ambos `SendNotifyTextMessage` `SendNotifyVoiceMessage` aceptan los siguientes parámetros:

NotifyConfigurationId (obligatorio)  
El ID o el ARN de la configuración de Notify.

DestinationPhoneNumber (obligatorio)  
El número de teléfono del destinatario en formato E.164.

TemplateVariables (obligatorio)  
Un mapa de nombres de variables a valores. Todos los valores son cadenas, incluso en el caso de variables enteras o booleanas.

TemplateId  
La plantilla que se va a utilizar. Si se omite, se utiliza la plantilla predeterminada de la configuración.

ConfigurationSetName  
Un conjunto de configuraciones para el enrutamiento de eventos.

Contexto  
Pares clave-valor incluidos en los registros de eventos.

DryRun  
Valida la solicitud sin enviarla.

TimeToLive  
Cuánto tiempo es válido el mensaje, en segundos. El valor predeterminado es 72 horas.

MessageFeedbackEnabled  
Permite el seguimiento de los comentarios de los mensajes a través de la `PutMessageFeedback` API.

VoiceId (solo por voz)  
La voz de Amazon Polly que se va a utilizar (por ejemplo,`JOANNA`,`MATTHEW`).

## Cómo funciona el enrutamiento de mensajes
<a name="notify-send-routing"></a>

AWS selecciona automáticamente la mejor identidad de origen para cada mensaje en función del país de destino. Si ha asociado un grupo de teléfonos a su configuración de Notify, primero se probarán las identidades del grupo que pertenezcan al cliente. Si no hay disponible una identidad adecuada propiedad del cliente, las identidades AWS administradas se utilizan como alternativa.

## Respuestas a los mensajes
<a name="notify-send-feedback"></a>

Si lo habilitas `MessageFeedbackEnabled` al enviar un mensaje, puedes informar si el usuario final ha recibido y utilizado correctamente el código:

```
client.put_message_feedback(
    MessageId='{{msg-1234567890abcdef}}',
    MessageFeedbackStatus='RECEIVED'  # or 'FAILED'
)
```

## Eventos de entrega
<a name="notify-send-delivery-events"></a>

Notify emite eventos de entrega a los destinos de eventos configurados (CloudWatchAmazon Data Firehose o Amazon SNS). Para obtener información sobre cómo configurar los destinos de los eventos, consulte. [Conjuntos de configuraciones en Mensajes SMS para usuarios finales de AWS](configuration-sets.md)


**Tipos de eventos de entrega**  

| Event | Description (Descripción) | 
| --- | --- | 
| PENDING | El mensaje está en cola para su entrega. | 
| DELIVERED | El mensaje se ha entregado al dispositivo del destinatario. | 
| FAILED | No se pudo entregar el mensaje. Compruebe el motivo del error para obtener más información. | 
| BLOCKED | Las reglas de configuración de Protect bloquearon el mensaje. | 

## Gestión de errores
<a name="notify-send-errors"></a>

ValidationException  
Faltan variables de plantilla o no son válidas, el formato del número de teléfono no es válido o el país de destino no está activado en la configuración.

ResourceNotFoundException  
No se encontró la configuración o la plantilla de Notify.

ServiceQuotaExceededException  
Se ha alcanzado el límite diario de mensajes (nivel básico) o el límite de gasto mensual.

ConflictException  
La configuración de Notify no está en `ACTIVE` estado.

## Notas importantes
<a name="notify-send-important-notes"></a>
+ **Mensajería bidireccional**: no se admite la mensajería bidireccional cuando se utilizan identidades de origen AWS administradas. Si necesitas mensajería bidireccional, asocia tu propio grupo de teléfonos. Consulte [Uso de números dedicados con Notify](notify-dedicated-numbers.md).
+ **Comportamiento de exclusión**: en los casos de uso de OTP con identidades AWS administradas, las respuestas a la palabra clave STOP son únicamente informativas. No se mantiene una lista de exclusión persistente porque cada solicitud de OTP es una suscripción implícita. Si asocias tu propio grupo de teléfonos, se respetará la lista de exclusión del grupo.

## Resolución de problemas
<a name="notify-send-troubleshooting"></a>

**¿No se entregan los mensajes**  
Si los mensajes no se entregan, compruebe lo siguiente:

1. Comprueba que el número de teléfono de destino esté en formato E.164 (empieza `+` por un código de país).

1. Comprueba que el país de destino esté en tu `EnabledCountries` lista.

1. Compruebe que el estado de la configuración sea`ACTIVE`.

1. Comprueba que no se haya superado tu límite de gasto.

**Estado bloqueado**  
Una configuración de Protect bloqueó el mensaje. Algunas de las razones más comunes son que el país de destino no esté en la lista de países habilitados o que el mensaje esté marcado como posible AIT (tráfico inflado artificialmente).

**Errores de validación**  
Asegúrese de proporcionar todos los requisitos. `TemplateVariables` Compruebe que los valores de las variables coincidan con los tipos declarados (por ejemplo, los enteros son números válidos). Compruebe que el ID de la plantilla existe y está activo.