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.
Ejemplo de envío de un mensaje SMS o de voz mediante SMS de mensajería para el usuario AWS final
Puedes usar la API de SMS de mensajería para el usuario AWS final para enviar mensajes directamente desde tus aplicaciones. Los mensajes transaccionales son mensajes que se envían a destinatarios específicos.
En esta sección se incluyen ejemplos de códigos para enviar mensajes SMS y mensajes de voz.
importante
Para usar un recurso compartido, debe usar el nombre completo del recurso de Amazon (ARN).
Temas de esta sección:
Envío de un mensaje SMS mediante SMS de mensajería para el usuario AWS final
Si utiliza un recurso compartido, debe utilizar el nombre de recurso de Amazon (ARN) completo del recurso. Puede utilizar el siguiente ejemplo de código para enviar un mensaje SMS con 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()
En el ejemplo de código anterior, realice los siguientes cambios en la función main()
:
-
Cambie el valor de
configuration_set
por el nombre o el nombre de recurso de Amazon (ARN) del conjunto de configuración que desea utilizar para enviar este mensaje. -
Cambie el valor de
context_keys
por las claves y los valores que desea utilizar al enviar este mensaje. Estas claves aparecen en los registros de eventos asociados a este mensaje. -
Si utiliza un ID de remitente registrado para enviar mensajes a clientes en India, cambie el valor de
country_parameters
para que coincida con el ID de entidad registrado y el ID de plantilla que recibió al registrar el ID de remitente.importante
Si no utiliza un ID de remitente registrado para enviar mensajes a clientes en India, omita este parámetro por completo. Si lo hace, también debe eliminar la línea correspondiente de la función
send_sms_message
. -
Cambie el valor de
destination_number
por el número de teléfono al que desea enviar el mensaje. -
Si desea ejecutar esta operación sin enviar ningún mensaje, cambie el valor de
dry_run
porTrue
. -
Cambie el valor de
max_price
por la cantidad máxima de dinero que desee gastar, en dólares estadounidenses, para enviar cada parte del mensaje de este mensaje. Una parte de mensaje contiene hasta 140 bytes de información. Para obtener más información, consulte Límites de caracteres de SMS. -
Cambie el valor de
message_body
para incluir el mensaje que desea enviar. La longitud máxima de un mensaje depende de los caracteres que contenga. Para obtener más información acerca de la codificación de caracteres SMS, consulte Límites de caracteres de SMS. -
Cambie el valor de
message_type
para que represente la categoría de mensaje adecuada. Los valores válidos son TRANSACTIONAL (para mensajes críticos o sensibles al tiempo) y PROMOTIONAL (para mensajes que no son críticos ni sensibles al tiempo). -
Cambie el valor de
origination_number
por el número de teléfono que desea usar para enviar el mensaje. El número de teléfono debe estar en formato E.164. -
Cambie el valor por la cantidad de tiempo, en segundos, que los SMS de mensajería para el usuario AWS final deben intentar entregar el mensaje.
ttl
Puede establecer el valor de TTL en 259 200 segundos (72 horas).
Enviar un mensaje de voz mediante SMS de mensajería para el usuario AWS final
Puede utilizar el siguiente ejemplo de código para enviar un mensaje de voz con 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()
En el ejemplo de código anterior, realice los siguientes cambios en la función main()
:
-
Cambie el valor de
configuration_set
por el nombre o el nombre de recurso de Amazon (ARN) del conjunto de configuración que desea utilizar para enviar este mensaje. -
Cambie el valor de
context_keys
por las claves y los valores que desea utilizar al enviar este mensaje. Estas claves aparecen en los registros de eventos asociados a este mensaje. -
Cambie el valor de
destination_number
por el número de teléfono al que desea enviar el mensaje. -
Cambie el valor de
max_price
por la cantidad máxima de dinero que desee gastar por minuto para enviar este mensaje. -
Cambie el valor de
message_body
para incluir el mensaje que desea enviar. El mensaje puede contener hasta 6000 caracteres. -
Si desea utilizar un script de texto sin formato en lugar de uno con formato SSML, cambie el valor de
message_type
porTEXT
. -
Cambie el valor de
origination_number
por el número de teléfono que desea usar para enviar el mensaje. El número de teléfono debe estar en formato E.164. -
Si desea ejecutar esta operación sin enviar ningún mensaje, cambie el valor de
dry_run
porTrue
. -
Cambie el valor por
ttl
la cantidad de tiempo, en segundos, que el SMS de mensajería del usuario AWS final debe intentar entregar el mensaje. Puede establecer el valor de TTL en 259 200 segundos (72 horas). -
Sustituya
MATTHEW
por el nombre de la voz de Amazon Polly que desea utilizar para enviar el mensaje. Para obtener una lista completa de las voces compatibles, consulte SendVoiceMessagela referencia de la API SMS and Voice, versión 2. Si no especifica una voz, el mensaje se envía con la voz “MATTHEW”.