本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用通知傳送訊息
通知提供兩個用於傳送訊息APIs:
SendNotifyTextMessage– 使用預先核准的範本傳送簡訊。SendNotifyVoiceMessage– 傳送語音呼叫,以使用text-to-speech讀取範本內容。
傳送簡訊訊息
傳送語音訊息
語音訊息需要在通知組態上啟用VOICE頻道。
提示
對於語音訊息,請以句點或空格分隔數字 (例如 "1. 2. 3. 4. 5. 6."),讓text-to-speech引擎個別讀取每個數字,而非單一數字。
使用 DryRun 模式
DryRun 設定為 true 以驗證傳送請求,而不實際傳遞訊息。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
事件路由的組態設定。
- Context
包含在事件記錄中的鍵/值對。
- DryRun
驗證請求而不傳送。
- TimeToLive
訊息的有效時間長度,以秒為單位。預設為 72 小時。
- MessageFeedbackEnabled
透過
PutMessageFeedbackAPI 啟用訊息意見回饋追蹤。- VoiceId (僅限語音)
要使用的 Amazon Polly 語音 (例如
JOANNA、)MATTHEW。
訊息路由的運作方式
AWS 會根據目的地國家/地區,自動為每個訊息選取最佳起始身分。如果您已將電話集區與通知組態建立關聯,則會先嘗試集區中客戶擁有的身分。如果沒有適當的客戶擁有的身分可用,則會使用 AWS受管身分做為備用身分。
訊息回饋
如果您在傳送訊息MessageFeedbackEnabled時啟用 ,您可以報告最終使用者是否已成功接收並使用程式碼:
client.put_message_feedback( MessageId='msg-1234567890abcdef', MessageFeedbackStatus='RECEIVED' # or 'FAILED' )
交付事件
通知 會將交付事件發送到您設定的事件目的地 (CloudWatch、Amazon Data Firehose 或 Amazon SNS)。如需設定事件目的地的詳細資訊,請參閱 AWS 最終使用者傳訊簡訊中的組態設定。
| 事件 | Description |
|---|---|
PENDING |
訊息已排入交付佇列。 |
DELIVERED |
訊息已交付至收件人的裝置。 |
FAILED |
訊息傳遞失敗。如需詳細資訊,請檢查失敗原因。 |
BLOCKED |
保護組態規則已封鎖訊息。 |
錯誤處理
- ValidationException
範本變數遺失或無效、電話號碼格式無效,或未在組態上啟用目的地國家/地區。
- ResourceNotFoundException
找不到通知組態或範本。
- ServiceQuotaExceededException
達到每日訊息限制 (基本方案) 或每月花費限制。
- ConflictException
通知組態未處於
ACTIVE狀態。
重要說明
雙向傳訊 – 使用 AWS受管原始身分時不支援雙向傳訊。如果您需要雙向傳訊,請將您自己的電話集區建立關聯。請參閱 搭配 Notify 使用專用號碼。
選擇退出行為 – 對於具有 AWS受管身分的 OTP 使用案例,STOP 關鍵字回應僅供參考。不會維護持續選擇退出清單,因為每個 OTP 請求都是隱含選擇加入。如果您將自己的電話集區建立關聯,則會遵守集區的選擇退出清單。
疑難排解
未傳遞的訊息
如果您的訊息未交付,請確認下列事項:
確認目的地電話號碼為 E.164 格式 (開頭為
+和 國碼)。檢查目的地國家/地區是否在您的
EnabledCountries清單中。驗證您的組態狀態為
ACTIVE。檢查您的支出限制尚未超過。
封鎖狀態
訊息已被保護組態封鎖。常見原因包括目的地國家/地區不在已啟用的國家/地區清單中,或訊息標記為潛在 AIT (人工膨脹流量)。
驗證錯誤
確定TemplateVariables已提供所有必要項目。檢查變數值是否符合其宣告的類型 (例如,整數是有效的數字)。確認範本 ID 存在且處於作用中狀態。