

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á.

# Exemplo de envio de uma mensagem SMS ou voz usando o AWS End User Messaging SMS.
<a name="send-sms-voice-message"></a>

Você pode usar a API do AWS End User Messaging SMS para enviar mensagens diretamente dos seus aplicativos. Mensagens transacionais são mensagens que você envia a destinatários específicos.

Esta seção inclui exemplos de código para enviar [mensagens SMS](#sms-voice-v2-messages-sms) e [mensagens de voz](#sms-voice-v2-messages-voice).

**Importante**  
Para usar um recurso compartilhado, você deve usar o nome do recurso da Amazon (ARN) completo.

**Topics**
+ [Enviando uma mensagem SMS usando o AWS End User Messaging SMS.](#sms-voice-v2-messages-sms)
+ [Enviando uma mensagem de voz usando o AWS End User Messaging SMS.](#sms-voice-v2-messages-voice)

## Enviando uma mensagem SMS usando o AWS End User Messaging SMS.
<a name="sms-voice-v2-messages-sms"></a>

Se você estiver usando um recurso compartilhado, deverá usar o nome do recurso da Amazon (ARN) completo do recurso. Você pode usar o exemplo de código a seguir para enviar uma mensagem SMS usando o AWS SDK para Python (Boto3).

```
import boto3
from botocore.exceptions import ClientError


def send_sms_message(sms_voice_v2_client, configuration_set, context_keys,
                     country_parameters, destination_number, dry_run, keyword,
                     max_price, message_body, message_type, origination_number,
                     ttl):
    try:
        response = sms_voice_v2_client.send_text_message(
            ConfigurationSetName=configuration_set,
            Context=context_keys,
            DestinationCountryParameters=country_parameters,
            DestinationPhoneNumber=destination_number,
            DryRun=dry_run,
            Keyword=keyword,
            MaxPrice=max_price,
            MessageBody=message_body,
            MessageType=message_type,
            OriginationIdentity=origination_number,
            TimeToLive=ttl
        )

    except ClientError as e:
        print(e.response)
    else:
        return response['MessageId']


def main():
    configuration_set = "MyConfigurationSet"
    context_keys = {"key1": "value1"}
    country_parameters = {
        "IN_TEMPLATE_ID": "TEMPLATE01234",
        "IN_ENTITY_ID": "ENTITY98765"
    }
    destination_number = "+14255550168"
    dry_run = False
    keyword = "MyKeyword"
    max_price = "2.00"
    message_body = ("This is a test message sent from AWS End User Messaging SMS "
                    "using the AWS SDK for Python (Boto3). ")
    message_type = "TRANSACTIONAL"
    origination_number = "+12065550183"
    ttl = 120

    print(
        f"Sending text message to {destination_number}.")

    message_id = send_sms_message(
        boto3.client('pinpoint-sms-voice-v2'), configuration_set, context_keys,
        country_parameters, destination_number, dry_run, keyword, max_price,
        message_body, message_type, origination_number, ttl)

    print(f"Message sent!\nMessage ID: {message_id}")


if __name__ == '__main__':
    main()
```

No exemplo de código anterior, faça as seguintes alterações na função `main()`:
+ Altere o valor de `configuration_set` para o nome ou o nome do recurso da Amazon (ARN) do conjunto de configuração que você deseja usar para enviar esta mensagem.
+ Altere o valor de `context_keys` para as chaves e os valores que deseja usar ao enviar esta mensagem. Essas chaves aparecem nos registros de eventos associados a essa mensagem.
+ Se você usar um ID de remetente registrado para enviar mensagens a clientes na Índia, altere o valor de `country_parameters` para corresponder ao ID da entidade registrado e ao ID do modelo que você recebeu ao registrar o ID de remetente.
**Importante**  
Se você não usa um ID de remetente registrado para enviar mensagens aos clientes na Índia, omita completamente esse parâmetro. Se você fizer isso, também deverá remover a linha correspondente na função `send_sms_message`.
+ Altere o valor de `destination_number` para o número de telefone para o qual você deseja enviar a mensagem.
+ Se você quiser executar essa operação sem enviar nenhuma mensagem, altere o valor de `dry_run` para `True`.
+ Altere o valor de `max_price` para a quantia máxima de dinheiro que você deseja gastar, em dólares americanos, para enviar esta mensagem a cada parte de mensagem. Uma parte de mensagem contém até 140 bytes de informação. Para obter mais informações, consulte [Limites de caracteres de SMS](sms-limitations-character.md).
+ Altere o valor de `message_body` para incluir a mensagem que deseja enviar. O tamanho máximo de uma mensagem depende dos caracteres contidos nela. Para obter mais informações sobre a codificação de caracteres do SMS, consulte [Limites de caracteres de SMS](sms-limitations-character.md).
+ Altere o valor de `message_type` para representar a categoria de mensagem apropriada. Os valores válidos são TRANSACTIONAL (para mensagens de extrema importância ou urgentes) e PROMOTIONAL (para mensagens que não são de extrema importância ou urgentes).
+ Altere o valor de `origination_number` para o número de telefone que você deseja usar para enviar a mensagem. O número de telefone deve estar no formato E.164.
+ Altere o valor de `ttl` para a quantidade de tempo, em segundos, que o AWS End User Messaging SMS deve tentar entregar a mensagem. Você pode definir o valor do TTL em até 259200 segundos (72 horas).

## Enviando uma mensagem de voz usando o AWS End User Messaging SMS.
<a name="sms-voice-v2-messages-voice"></a>

Você pode usar o exemplo de código a seguir para enviar uma mensagem de voz usando o AWS SDK para Python (Boto3).

```
import boto3
from botocore.exceptions import ClientError


def send_voice_message(sms_voice_v2_client, configuration_set, context_keys,
                       destination_number, dry_run, max_price, message_body,
                       message_type, origination_number, ttl, voice_id):
    try:
        response = sms_voice_v2_client.send_voice_message(
            ConfigurationSetName=configuration_set,
            Context=context_keys,
            DestinationPhoneNumber=destination_number,
            DryRun=dry_run,
            MaxPricePerMinute=max_price,
            MessageBody=message_body,
            MessageBodyTextType=message_type,
            OriginationIdentity=origination_number,
            TimeToLive=ttl,
            VoiceId=voice_id
        )

    except ClientError as e:
        print(e.response)
    else:
        return response['MessageId']


def main():
    configuration_set = "MyConfigurationSet"
    context_keys = {"key1":"value1"}
    destination_number = "+12065550123"
    dry_run = False
    max_price = "2.00"
    message_body = (
        "<speak>"
        "This is a test message sent from <emphasis>AWS End User Messaging SMS</emphasis>"
        "using the <break strength='weak'/> AWS SDK para Python (Boto3). "
        "<amazon:effect phonation='soft'>Thank you for listening."
        "</amazon:effect>"
        "</speak>")
    message_type = "SSML"
    origination_number = "+18445550142"
    ttl = 120
    voice_id = "MATTHEW"

    print(
        f"Sending voice message with AWS End User Messaging SMS from {origination_number} to {destination_number}.")

    message_id = send_voice_message(
        boto3.client('pinpoint-sms-voice-v2'), configuration_set, context_keys,
        destination_number, dry_run, max_price, message_body, message_type,
        origination_number, ttl, voice_id)

    print(f"Message sent!\nMessage ID: {message_id}")


if __name__ == '__main__':
    main()
```

No exemplo de código anterior, faça as seguintes alterações na função `main()`:
+ Altere o valor de `configuration_set` para o nome ou o nome do recurso da Amazon (ARN) do conjunto de configuração que você deseja usar para enviar esta mensagem.
+ Altere o valor de `context_keys` para as chaves e os valores que deseja usar ao enviar esta mensagem. Essas chaves aparecem nos registros de eventos associados a essa mensagem.
+ Altere o valor de `destination_number` para o número de telefone para o qual você deseja enviar a mensagem.
+ Altere o valor de `max_price` para a quantia máxima que você deseja gastar por minuto enviando essa mensagem.
+ Altere o valor de `message_body` para incluir a mensagem que deseja enviar. A mensagem pode conter até 6.000 caracteres.
+ Se você quiser usar um script de texto simples em vez de um com formato SSML, altere o valor de `message_type` para `TEXT`.
+ Altere o valor de `origination_number` para o número de telefone que você deseja usar para enviar a mensagem. O número de telefone deve estar no formato E.164.
+ Se você quiser executar essa operação sem enviar nenhuma mensagem, altere o valor de `dry_run` para `True`.
+ Altere o valor de `ttl` para a quantidade de tempo, em segundos, que o AWS End User Messaging SMS deve tentar entregar a mensagem. Você pode definir o valor do TTL em até 259200 segundos (72 horas).
+ Substitua `MATTHEW` pelo nome da voz do Amazon Polly que você deseja usar para enviar a mensagem. Para obter uma lista completa das vozes compatíveis, consulte [SendVoiceMessage](https://docs.aws.amazon.com/pinpoint/latest/apireference_smsvoicev2/API_SendVoiceMessage.html#pinpoint-SendVoiceMessage-request-VoiceId) na *Referência da API de SMS e voz, versão 2*. Se você não especificar uma voz, sua mensagem será enviada usando a voz “MATTHEW”.