本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 “通知” 发送消息
Notify 提供了两个 APIs 用于发送消息的功能:
SendNotifyTextMessage— 使用预先批准的模板发送 SMS 消息。SendNotifyVoiceMessage— 使用语音呼叫读取模板内容 text-to-speech。
发送短信
发送语音消息
语音留言需要在 “通知” 配置中启用VOICE频道。
提示
对于语音消息,使用句点或空格分隔数字(例如"1. 2. 3. 4. 5. 6."),以便 text-to-speech引擎单独读取每个数字,而不是作为单个数字。
使用 DryRun 模式
设置DryRuntrue为可在不实际传送消息的情况下验证发送请求。 DryRun 模式会检查模板变量验证、国家/地区限制和支出限制,但不会发送消息或从您的支出限额中扣除。
aws pinpoint-sms-voice-v2 send-notify-text-message \ --notify-configuration-idnc-1234567890abcdef0\ --destination-phone-number+12065550100\ --template-idnotify-code-verification-english-001\ --template-variables '{"code":"123456"}' \ --dry-run
发送请求参数
两者SendNotifyTextMessage兼而有之,并SendNotifyVoiceMessage接受以下参数:
- NotifyConfigurationId (必填)
通知配置的 ID 或 ARN。
- DestinationPhoneNumber (必填)
收件人的电话号码采用 E.164 格式。
- TemplateVariables (必填)
变量名到值的映射。所有值都是字符串,即使是整数或布尔变量也是如此。
- TemplateId
要使用的模板。如果省略,则使用配置的默认模板。
- ConfigurationSetName
事件路由的配置集。
- 上下文
事件记录中包含键值对。
- DryRun
在不发送请求的情况下验证请求。
- TimeToLive
消息的有效时长,以秒为单位。默认值为 72 小时。
- MessageFeedbackEnabled
通过
PutMessageFeedbackAPI 启用消息反馈跟踪。- VoiceId (仅限语音)
要使用的 Amazon Polly 语音(例如
JOANNA,MATTHEW)。
邮件路由的工作原理
AWS 根据目的地国家/地区自动为每封邮件选择最佳的发件人身份。如果您已将电话池与 Notify 配置相关联,则会先尝试该池中客户拥有的身份。如果没有合适的客户拥有的身份可用,则使用 AWS由托管的身份作为备用身份。
消息反馈
如果您MessageFeedbackEnabled在发送消息时启用,则可以报告最终用户是否成功接收并使用了代码:
client.put_message_feedback( MessageId='msg-1234567890abcdef', MessageFeedbackStatus='RECEIVED' # or 'FAILED' )
配送活动
通知会向您配置的事件目的地(CloudWatchAmazon Data Firehose 或亚马逊 SNS)发出传送事件。有关设置事件目的地的信息,请参阅AWS 终端用户消息发送 SMS 服务中的配置集。
| 事件 | 说明 |
|---|---|
PENDING |
留言已排队等候传送。 |
DELIVERED |
消息已传送到收件人的设备。 |
FAILED |
留言传送失败。有关详细信息,请查看失败原因。 |
BLOCKED |
邮件已被 “保护” 配置规则阻止。 |
错误处理
- ValidationException
模板变量缺失或无效、电话号码格式无效或目的地国家/地区未在配置中启用。
- ResourceNotFoundException
未找到通知配置或模板。
- ServiceQuotaExceededException
已达到每日消息上限(基本级别)或每月支出上限。
- ConflictException
通知配置未处于
ACTIVE状态。
重要提示
双向消息-使用 AWS托管的发起身份时不支持双向消息。如果您需要双向消息,请关联自己的电话池。请参阅在 “通知” 中使用专用号码。
选择退出行为 — 对于具有 AWS托管身份的 OTP 用例,STOP 关键字响应仅供参考。由于每个 OTP 请求都是隐式的选择加入,因此不保留永久性选择退出列表。如果您关联自己的电话池,则会遵守电话池的选择退出列表。
问题排查
留言未送达
如果您的消息未送达,请验证以下内容:
验证目标电话号码是否为 E.164 格式(以
+和国家/地区代码开头)。检查目的地国家/地区是否在您的
EnabledCountries列表中。验证您的配置状态为
ACTIVE。检查您的支出限额是否未被超过。
已屏蔽状态
该邮件已被 “保护” 配置阻止。常见原因包括目的地国家/地区不在您的启用国家/地区列表中,或者消息被标记为潜在的 AIT(人为夸大流量)。
验证错误
确保提供所有必TemplateVariables需品。检查变量值是否与其声明的类型相匹配(例如,整数是有效数字)。验证模板 ID 是否存在且处于活动状态。