View a markdown version of this page

AWS End User Messaging SMS を使用して SMS または音声メッセージを送信する例 - AWS エンドユーザーメッセージング SMS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS End User Messaging SMS を使用して SMS または音声メッセージを送信する例

AWS End User Messaging SMS API を使用して、アプリから直接メッセージを送信できます。トランザクションメッセージは、特定の受信者に送信するメッセージです。

このセクションには、SMS メッセージ音声メッセージの送信の両方のコード例が記載されています。

重要

共有リソースを使用するには、完全な Amazon リソースネーム (ARN) を使用する必要があります。

AWS End User Messaging SMS を使用した SMS メッセージの送信

共有リソースを使用している場合は、リソースの完全な Amazon リソースネーム (ARN) を使用する必要があります。AWS SDK for Python (Boto3) で SMS メッセージを送信するには、次のコード例を使用できます。

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

前述のコード例では、main() 関数で次の変更を加えています。

  • configuration_set の値を、このメッセージの送信に使用する設定セットの名前または Amazon リソースネーム (ARN) に変更します。

  • context_keys の値を、このメッセージの送信時に使用するキーと値に変更します。これらのキーは、このメッセージに関連付けられたイベントレコードに表示されます。

  • インドの顧客にメッセージを送信するために登録済みの送信者 ID を使用する場合は、送信者 ID の登録時に受け取った登録エンティティ ID およびテンプレート ID と一致するように country_parameters の値を変更します。

    重要

    インドの顧客にメッセージを送信するために登録済み送信者 ID を使用しない場合は、このパラメータを完全に省略します。省略する場合は、send_sms_message 関数の対応する行も削除する必要があります。

  • destination_number の値を、メッセージの送信先の電話番号に変更します。

  • メッセージを送信せずに、この操作を実行する場合は、dry_run の値を True に変更します。

  • max_price の値を、このメッセージの各メッセージパートを送信するために使う最大金額 (USD) に変更します。1 つのメッセージパートに最大 140 バイトの情報を含めることができます。詳細については、「SMS 文字制限」を参照してください。

  • message_body の値を、送信するメッセージを含むように変更します。メッセージの最大長は、メッセージに含まれる文字によって異なります。SMS の文字エンコーディングの詳細については、「SMS 文字制限」を参照してください。

  • message_type の値を、適切なメッセージカテゴリを表すように変更します。有効な値は、TRANSACTIONAL (重要である、または時間的制約のあるメッセージの場合) と PROMOTIONAL (重要でない、または時間的制約のないメッセージの場合) です。

  • origination_number の値を、メッセージの送信に使用する電話番号に変更します。電話番号は E.164 形式である必要があります。

  • ttl の値を、AWS End User Messaging SMS がメッセージの配信を試みる時間 (秒数) に変更します。TTL 値は最大 259200 秒 (72 時間) に設定できます。

AWS End User Messaging SMS を使用した音声メッセージの送信

AWS SDK for 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 for 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()

前述のコード例では、main() 関数で次の変更を加えています。

  • configuration_set の値を、このメッセージの送信に使用する設定セットの名前または Amazon リソースネーム (ARN) に変更します。

  • context_keys の値を、このメッセージの送信時に使用するキーと値に変更します。これらのキーは、このメッセージに関連付けられたイベントレコードに表示されます。

  • destination_number の値を、メッセージの送信先の電話番号に変更します。

  • max_price の値を、このメッセージの送信に使う 1 分あたりの最大金額に変更します。

  • message_body の値を、送信するメッセージを含むように変更します。メッセージの長さは最大 6,000 文字です。

  • SSML 形式のスクリプトではなくプレーンテキスト形式のスクリプトを使用する場合は、message_type の値を TEXT に変更します。

  • origination_number の値を、メッセージの送信に使用する電話番号に変更します。電話番号は E.164 形式である必要があります。

  • メッセージを送信せずに、この操作を実行する場合は、dry_run の値を True に変更します。

  • ttl の値を、AWS End User Messaging SMS がメッセージの配信を試みる時間 (秒数) に変更します。TTL 値は最大 259200 秒 (72 時間) に設定できます。

  • MATTHEW を、メッセージの送信に使用する Amazon Polly 音声の名前に置き換えます。サポートされている音声の完全なリストについては、「SMS and Voice, version 2 API Reference」の「SendVoiceMessage」を参照してください。音声を指定しない場合、メッセージは「MATTHEW」音声を使用して送信されます。