终止支持通知: AWS 将于 2026 年 10 月 30 日终止对亚马逊 Pinpoint 的支持。2026 年 10 月 30 日之后,您将无法再访问亚马逊 Pinpoint 控制台或亚马逊 Pinpoint 资源(终端节点、区段、活动、旅程和分析)。有关更多信息,请参阅 Amazon Pinpoint 终止支持。注意: APIs 与短信相关、语音、移动推送、OTP 和电话号码验证不受此更改的影响,并受 AWS 最终用户消息的支持。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon Pinpoint 生成一次性密码 (OTPs)
Amazon Pinpoint 包含一次性密码(OTP)管理功能,您可以使用该功能生成新的一次性密码,并将这些密码作为短信消息发送给您的收件人。
重要
要使用该功能,您的账户必须具有生产访问权限和有效的发起身份。有关更多信息,请参阅《AWS 终端用户消息发送 SMS 用户指南》中的关于短信/彩信和语音沙盒和申请电话号码。
在某些国家/地区和区域,您必须先获得专用的电话号码或发起 ID,然后才能发送短信消息。例如,当您向美国的收件人发送消息时,您必须有一个专用的免费电话号码、10DLC 号码或短代码。当您向印度的收件人发送消息时,您必须拥有注册的发件人 ID,其中包括主体实体 ID (PEID) 和模板 ID。在使用 OTP 功能时,这些要求仍然适用。
要使用此功能,您需要具有发送和验证 OTP 消息的权限,请参阅一次性密码。如果您在确定权限方面需要帮助,请参阅Amazon Pinpoint 身份和访问管理问题排查。
您可以使用 Amazon Pinpoint API 中的 SendOtpMessages
操作向应用程序用户发送 OTP 代码。当您使用此 API 时,Amazon Pinpoint 会生成一个随机代码并将其作为短信发送给您的用户。您的请求中可以包括以下参数:
-
Channel
– 发送 OTP 代码的通信渠道。目前,仅支持短信,因此唯一可接受的值是 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 注册流程。
为确保正确配置您的 Amazon Pinpoint 账户以发送 OTP 消息,您可以使用 AWS CLI 发送测试消息。有关更多信息 AWS CLI,请参阅《AWS Command Line Interface 用户指南》。
要使用发送测试 OTP 消息 AWS CLI,请在终端中运行send-otp-message以下命令:
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
替换为贵公司的名称。 -
5
用CodeLegth
发送给收件人的 OTP 代码中的位数替换。 -
将
20
inValidityPeriod
替换为 OTP 代码生效的时间(以分钟为单位)。 -
AllowedAttempts
替5
换为收件人尝试验证 OTP 失败的次数。 -
OriginationIdentity
替+18555550142
换为用于发送 OTP 代码的原始身份。 -
DestinationIdentity
用要将+12065550007
OTP 代码发送到的电话号码替换。 -
ReferenceId
替SampleReferenceId
换为请求的唯一参考编号。
SendOtpMessage
响应
成功发送 OTP 消息后,您将收到与类似以下示例的响应:
{ "MessageResponse": { "ApplicationId": "7353f53e6885409fa32d07cedexample", "RequestId": "255d15ea-75fe-4040-b919-096f2example", "Result": { "+12065550007": { "DeliveryStatus": "SUCCESSFUL", "MessageId": "nvrmgq9kq4en96qgp0tlqli3og1at6aexample", "StatusCode": 200, "StatusMessage": "MessageId: nvrmgq9kq4en96qgp0tlqli3og1at6aexample" } } } }