

**支援終止通知：**2026 年 10 月 30 日， AWS 將結束對 Amazon Pinpoint 的支援。2026 年 10 月 30 日之後，您將無法再存取 Amazon Pinpoint 主控台或 Amazon Pinpoint 資源 (端點、區段、行銷活動、旅程和分析)。如需詳細資訊，請參閱 [Amazon Pinpoint 終止支援](https://docs.aws.amazon.com/console/pinpoint/migration-guide)。**注意：**與 SMS、語音、行動推播、OTP 和電話號碼驗證相關的 APIs 不受此變更影響，並受 AWS 最終使用者傳訊支援。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Amazon Pinpoint 產生一次性密碼 (OTPs)
<a name="send-validate-otp"></a>

Amazon Pinpoint 包含一次性密碼 (OTP) 管理功能，可用來產生新的一次性密碼，並以簡訊的形式傳送給收件人。

**重要**  
若要使用此功能，您的帳戶必須具有生產存取權和作用中的原始身分。如需詳細資訊，請參閱*AWS 《最終使用者簡訊簡訊使用者指南*[》中的關於簡訊/簡訊和語音沙盒](https://docs.aws.amazon.com/sms-voice/latest/userguide/sandbox.html)和[請求電話號碼](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request.html)。

在某些國家和地區，您必須先取得專用的電話號碼或原始 ID，才能傳送簡訊。例如傳送訊息給美國收件人時，您必須擁有專用的免付費電話號碼、10DLC 號碼或短碼。傳送訊息給印度收件人時，您必須要有已註冊寄件者 ID，寄件者 ID 包含主體實體 ID (PEID) 和範本 ID。使用 OTP 功能時，這些要求仍然適用。

若要使用此功能，您需要傳送和驗證 OTP 訊息的許可，詳情請參閱 [一次性密碼](permissions-actions.md#permissions-actions-apiactions-otp)。如果您需要判斷許可的協助，請參閱 [疑難排解 Amazon Pinpoint 身分和存取管理](security_iam_troubleshoot.md)。

您可以使用 Amazon Pinpoint API 中的 `SendOtpMessages` 操作，傳送 OTP 密碼給應用程式的使用者。您使用此 API 時，Amazon Pinpoint 會產生一組隨機代碼，並透濄 SMS 訊息傳送給您的使用者。您的請求可以包含下列參數：
+ `Channel` – 傳送 OTP 密碼所通過的通訊管道。目前只支援 SMS 訊息，因此唯一可接受的值是 SMS。
+ `BrandName` – 與 OTP 密碼相關聯的品牌、公司或產品的名稱。此名稱最多可包含 20 個字元。
**注意**  
Amazon Pinpoint 傳送 OTP 訊息時，品牌名稱會自動插入以下訊息範本：  

  ```
  This is your One Time Password: {{otp}} from {{brand}}
  ```
因此如果您將 ExampleCorp 指定為品牌名稱，而 Amazon Pinpoint 產生的一次性密碼為 123456，您的使用者會收到以下訊息：  

  ```
  This is your One Time Password: 123456 from ExampleCorp
  ```
+ `CodeLength` – 傳送給收件人的 OTP 密碼的位數。OTP 密碼可以包含 5 到 8 位數字。
+ `ValidityPeriod` – OTP 密碼的有效時間 (以分鐘為單位)。有效期限是 5 至 60 分鐘。
+ `AllowedAttempts` – 收件人嘗試驗證 OTP 失敗的次數。如果嘗試次數超過此值，OTP 將自動失效。允許的嘗試次數上限是 5 次。
+ `Language` – 傳送訊息時使用的語言，以 IETF BCP-47 格式表示。可接受的值為：
  + `de-DE` – 德文
  + `en-GB` – 英文 (英國)
  + `en-US` – 英文 (美國)
  + `es-419` – 西班牙文 (拉丁美洲)
  + `es-ES` – 西班牙文
  + `fr-CA` – 法文 (加拿大)
  + `fr-FR` – 法文
  + `it-IT` – 義大利文
  + `ja-JP` – 日文
  + `ko-KR` – 韓文
  + `pt-BR` – 葡萄牙文 (巴西)
  + `zh-CN` – 簡體中文
  + `zh-TW` – 繁體中文
+ `OriginationIdentity` – 用於傳送 OTP 密碼的起始身分 (例如長碼、短碼或寄件者 ID)。如果您使用長碼或免付費電話號碼傳送 OTP，電話號碼必須以 E.164 格式顯示。
+ `DestinationIdentity` – 接收 OTP 密碼的電話號碼 (E.164 格式)。
+ `ReferenceId` – 請求的唯一參考 ID。參考 ID 與您驗證 OTP 時提供的參考 ID 完全相符。參考 ID 可以包含 1 到 48 個字元。
+ `EntityId` – 已在監管機構註冊的實體 ID。此參數目前只適用於傳送訊息給印度收件人。如果沒有要傳訊給印度收件人，可以省略此參數。
+ `TemplateId` – 已在監管機構註冊的範本 ID。此參數目前只適用於傳送訊息給印度收件人。如果沒有要傳訊給印度收件人，可以省略此參數。
**注意**  
如需有關傳送訊息給印度收件人要求的詳細資訊，請參閱《*Amazon Pinpoint 使用者指南》中的*[印度寄件者 ID 註冊程序](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations-sms-senderid-india.html)。

為了確保您的 Amazon Pinpoint 帳戶已正確設定為傳送 OTP 訊息，您可以使用 AWS CLI 來傳送測試訊息。如需 的詳細資訊 AWS CLI，請參閱[AWS Command Line Interface 《 使用者指南》](https://docs.aws.amazon.com/cli/latest/userguide/)。

若要使用 傳送測試 OTP 訊息 AWS CLI，請在終端機中執行 [send-otp-message](https://docs.aws.amazon.com/cli/latest/reference/pinpoint/send-otp-message.html) 命令：

```
aws pinpoint send-otp-message --application-id 7353f53e6885409fa32d07cedexample --send-otp-message-request-parameters Channel=SMS,BrandName=ExampleCorp,CodeLength=5,ValidityPeriod=20,AllowedAttempts=5,OriginationIdentity=+18555550142,DestinationIdentity=+12065550007,ReferenceId=SampleReferenceId
```

針對上述命令執行以下事項：
+ 將 *7353f53e6885409fa32d07cedexample* 取代為您的應用程式 ID。
+ 以您的公司名稱取代 *ExampleCorp*。
+ `CodeLegth` 以傳送給收件人的 OTP 代碼中的位數取代 *5*。
+ 將 中的 *20* 取代`ValidityPeriod`為 OTP 程式碼將有效的時間，以分鐘為單位。
+ 將 中的 *5* 取代`AllowedAttempts`為收件人無法成功嘗試驗證 OTP 的次數。
+ 將 中的 *\$118555550142* 取代`OriginationIdentity`為用於傳送 OTP 程式碼的原始身分。
+ 將 中的 *\$112065550007* `DestinationIdentity` 取代為要傳送 OTP 代碼的電話號碼。
+ 以請求`ReferenceId`的唯一參考 ID 取代 中的 *SampleReferenceId*。

## `SendOtpMessage` 回應
<a name="send-validate-otp-sending-response"></a>

若傳送 OTP 訊息成功，會收到類似以下範例的回應：

```
{
    "MessageResponse": {
        "ApplicationId": "7353f53e6885409fa32d07cedexample",
        "RequestId": "255d15ea-75fe-4040-b919-096f2example",
        "Result": {
            "+12065550007": {
                "DeliveryStatus": "SUCCESSFUL",
                "MessageId": "nvrmgq9kq4en96qgp0tlqli3og1at6aexample",
                "StatusCode": 200,
                "StatusMessage": "MessageId: nvrmgq9kq4en96qgp0tlqli3og1at6aexample"
            }
        }
    }
}
```