本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您可以使用 AWS 最終使用者傳訊簡訊 API,直接從應用程式傳送訊息。交易訊息是您傳送給特定收件人的訊息。
重要
若要使用共用資源,您必須使用完整的 Amazon Resource Name (ARN)。
使用 AWS 最終使用者簡訊簡訊傳送簡訊
如果您使用的是共用資源,則必須使用資源的完整 Amazon Resource Name (ARN)。您可以利用以下程式碼範例,使用 適用於 Python (Boto3) 的 AWS SDK傳送 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 Resource Name (ARN)。 -
將
context_keys
的值,改成您在傳送此訊息時,要使用的金鑰和值。這些金鑰出現在與此訊息相關聯的事件記錄中。 -
如果您使用已註冊寄件者 ID 向印度客戶傳送訊息,請將
country_parameters
值改成您在註冊寄件者 ID 時收到的註冊實體 ID 和範本 ID。重要
如果您不會將已註冊寄件者 ID 用於傳送訊息給印度客戶,請完全省略此參數。如果要省略此參數,也必須移除
send_sms_message
函數中對應此參數的那一行。 -
將
destination_number
的值,改成訊息目的地的電話號碼。 -
若要執行此操作而不傳送任何訊息,請將
dry_run
的值改成True
。 -
將
max_price
的值改成,您為了傳送此訊息的每個訊息部分,願意支出的金額上限 (以美元為單位)。一個訊息部分最多包含 140 位元組的資訊。如需詳細資訊,請參閱簡訊字元限制。 -
變更
message_body
的值,加入您要傳送的訊息。訊息的長度上限,視訊息包含的字元而定。如需簡訊字元編碼的詳細資訊,請參閱 簡訊字元限制。 -
變更
message_type
的值,以代表適當的訊息類別。有效值包括 TRANSACTIONAL (適用於關鍵或有時效性的訊息) 和 PROMOTIONAL (適用於非關鍵或沒有時效性的訊息)。 -
將
origination_number
的值,改成您要用於傳送訊息的電話號碼。電話號碼必須為 E.164 格式。 -
將 的值變更為 AWS 最終使用者傳訊簡訊應嘗試傳遞訊息的時間
ttl
量,以秒為單位。您可以將 TTL 值設為最多 259200 秒 (72 小時)。
使用 AWS 最終使用者簡訊簡訊傳送語音訊息
您可以利用以下程式碼範例,使用 適用於 Python (Boto3) 的 AWS SDK傳送語音訊息。
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'/> 適用於 Python (Boto3) 的 AWS SDK. "
"<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 Resource Name (ARN)。 -
將
context_keys
的值,改成您在傳送此訊息時,要使用的金鑰和值。這些金鑰出現在與此訊息相關聯的事件記錄中。 -
將
destination_number
的值,改成訊息目的地的電話號碼。 -
將
max_price
的值改成,您為了傳送此訊息,每分鐘願意支出的金額上限。 -
變更
message_body
的值,加入您要傳送的訊息。訊息最多可包含 6,000 個字元。 -
若要使用純文字指令碼 (而不是 SSML 格式的命令碼),請將
message_type
的值改成TEXT
。 -
將
origination_number
的值,改成您要用於傳送訊息的電話號碼。電話號碼必須為 E.164 格式。 -
若要執行此操作而不傳送任何訊息,請將
dry_run
的值改成True
。 -
將 的值變更為 AWS 最終使用者傳訊簡訊應嘗試傳遞訊息的時間
ttl
量,以秒為單位。您可以將 TTL 值設為最多 259200 秒 (72 小時)。 -
將
MATTHEW
替換成您要用於傳送訊息的 Amazon Polly 語音的名稱。如需支援語音的完整清單,請參閱 SMS 和語音第 2 版 API 參考中的 SendVoiceMessage。如果您未指定語音,則會使用 "MATTHEW" 語音傳送訊息。