View a markdown version of this page

Exemplo de envio de uma mensagem SMS ou voz usando o AWS End User Messaging SMS. - AWS SMS de mensagens para o usuário final

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.

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 e mensagens de voz.

Importante

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

Enviando uma mensagem SMS usando o AWS End User Messaging SMS.

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.

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

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

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