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á.
Você pode usar a API AWS End User Messaging SMS para enviar mensagens diretamente de seus aplicativos. Mensagens transacionais são mensagens que você envia para 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 Amazon Resource Name (ARN) completo.
Tópicos nesta seção:
Enviando uma mensagem SMS usando o AWS End User Messaging SMS
Se você estiver usando um recurso compartilhado, deverá usar o Amazon Resource Name (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
paraTrue
. -
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, em que o SMS de mensagem do usuário AWS final deve tentar entregar a mensagem. Você pode definir o valor do TTL em até 259200 segundos (72 horas).
Enviando uma mensagem de voz usando SMS de mensagens para o usuário AWS final
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
paraTEXT
. -
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
paraTrue
. -
Altere o valor de
ttl
para a quantidade de tempo, em segundos, em que o SMS de mensagem do usuário AWS final 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 suportadas, consulte SendVoiceMessagea Referência da API SMS and Voice, versão 2. Se você não especificar uma voz, sua mensagem será enviada usando a voz “MATTHEW”.