Ejemplo de envío de un mensaje SMS o de voz mediante SMS de mensajería para el usuario AWS final - AWS SMS de mensajería para el usuario final

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

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 por True.

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

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

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