翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
End AWS User Messaging SMS API を使用して、アプリから直接メッセージを送信できます。トランザクションメッセージは、特定の受信者に送信するメッセージです。
このセクションには、SMS メッセージと音声メッセージの送信の両方のコード例が記載されています。
重要
共有リソースを使用するには、完全な Amazon リソースネーム (ARN) を使用する必要があります。
AWS エンドユーザーメッセージング 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 形式である必要があります。 -
の値を、 AWS エンドユーザーメッセージング SMS がメッセージの配信を試みる秒単位
ttl
の時間に変更します。TTL 値は最大 259200 秒 (72 時間) に設定できます。
AWS エンドユーザーメッセージング 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
に変更します。 -
の値を、 AWS エンドユーザーメッセージング SMS がメッセージの配信を試みる秒単位
ttl
の時間に変更します。TTL 値は最大 259200 秒 (72 時間) に設定できます。 -
MATTHEW
を、メッセージの送信に使用する Amazon Polly 音声の名前に置き換えます。サポートされている音声の完全なリストについては、「SMS and Voice, version 2 API Reference」の「SendVoiceMessage」を参照してください。音声を指定しない場合、メッセージは「MATTHEW」音声を使用して送信されます。