기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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를 사용하여 인도에 있는 고객에게 메시지를 보내는 경우.
country_parameters
의 값을 발신자 ID를 등록할 때 받은 등록된 엔티티 ID 및 템플릿 ID와 일치하도록 변경합니다.중요
등록된 발신자 ID를 사용하여 인도에 있는 고객에게 메시지를 보내지 않는 경우 이 파라미터를 완전히 생략하세요. 그럴 경우
send_sms_message
함수에서 해당 줄도 제거해야 합니다. -
destination_number
의 값을 메시지를 전송하려는 전화번호로 변경합니다. -
메시지를 보내지 않고 이 작업을 실행하려면
dry_run
의 값을True
로 변경합니다. -
이 메시지의 각 메시지 파트를 전송하려면
max_price
의 값을 지출하려는 최대 금액(미국 달러)으로 변경합니다. 하나의 메시지 파트에는 최대 140바이트의 정보가 포함됩니다. 자세한 내용은 SMS 문자 수 한도 단원을 참조하십시오. -
보내려는 메시지를 포함하도록
message_body
의 값을 변경합니다. 메시지의 최대 길이는 메시지에 포함된 문자에 따라 다릅니다. SMS 문자 인코딩에 대한 자세한 내용은 SMS 문자 수 한도 섹션을 참조하세요. -
적절한 메시지 범주를 나타내도록
message_type
의 값을 변경합니다. 유효한 값은 TRANSACTIONAL(중요하거나 시간에 민감한 메시지의 경우) 및 PORMINTIONAL(중요하지 않거나 시간에 민감하지 않은 메시지의 경우)입니다. -
origination_number
의 값을 메시지를 전송하는 데 사용하려는 전화번호로 변경합니다. 전화번호는 E.164 형식이어야 합니다. -
의 값을 AWS End User Messaging SMS가 메시지를 전송하려고 시도하는 초 단위
ttl
의 시간으로 변경합니다. 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
의 값을 이 메시지를 전송하는 데 지출할 분당 최대 금액으로 변경합니다. -
보내려는 메시지를 포함하도록
message_body
의 값을 변경합니다. 메시지는 최대 6,000자를 포함할 수 있습니다. -
SSML 형식 스크립트 대신 일반 텍스트 스크립트를 사용하려면
message_type
의 값을TEXT
로 변경하세요. -
origination_number
의 값을 메시지를 전송하는 데 사용하려는 전화번호로 변경합니다. 전화번호는 E.164 형식이어야 합니다. -
메시지를 보내지 않고 이 작업을 실행하려면
dry_run
의 값을True
로 변경합니다. -
의 값을 AWS End User Messaging SMS가 메시지를 전송하려고 시도하는 초 단위
ttl
의 시간으로 변경합니다. TTL 값을 최대 259200초(72시간)으로 설정할 수 있습니다. -
MATTHEW
를 메시지를 전송하는 데 사용하려는 Amazon Polly 음성의 이름으로 바꿉니다. 지원되는 음성의 전체 목록은 SMS 및 음성, 버전 2 API 참조의 SendVoiceMessage를 참조하세요. 음성을 지정하지 않으면 메시지는 ‘MATTHEW’ 음성을 사용하여 전송됩니다.