使用 pinpoint Nodejs 通过亚马逊免费电话号码发送短信

Sending sms via amazon tollfree number using pinpoint Nodejs

大家好,我正在尝试通过 nodejs 使用免费电话号码通过 amazon pinpoint 发送短信。请注意,为了安全起见,此代码中的数字已更改。这是我的代码:

router.get("/send-text", async (req, res, next) => {
  try {
    const sender = "+18446850251";
    const destinationNumber = "+14325948991";
    const message = "HELLO from AWS";
    const applicationId = "myApplicationId";
    const messageType = "TRANSACTIONAL";
    AWS.config.update({ region: "us-east-1" });
    const pinpoint = new AWS.Pinpoint();
    const params = {
      ApplicationId: applicationId,
      MessageRequest: {
        Addresses: {
          [destinationNumber]: {
            BodyOverride: message,
            ChannelType: "SMS"
          }
        },
        MessageConfiguration: {
          SMSMessage: {
            Body: message,
            MessageType: messageType,
            OriginationNumber: sender
          }
        }
      }
    };
    const result = await pinpoint.sendMessages(params).promise();
    res.send(result);
  } catch (error) {
    console.log(error);
    next(error);
  }
});

根据 运行 此代码,我得到以下响应:

{
MessageResponse: {
ApplicationId: "myApplicationId",
RequestId: "8beaebf0-f33a-42d3-bb88-1f3efcf493eb",
Result: {
+14325948991: {
DeliveryStatus: "PERMANENT_FAILURE",
StatusCode: 404,
StatusMessage: "Resource not found"
}
}
}
}

旁注:我这样做的原因是我收到了一封来自 AWS 的电子邮件,我的理解是我不能再通过应用程序通过 SNS 主题向某人发送短信(10 位长代码)并且必须从 6 月 1 日开始使用 10DLC 长代码或免费电话通过精确定位发送它们,对吗?

image of settings

如本 AWS 文档所述,您的假设是正确的:https://docs.aws.amazon.com/sns/latest/dg/channels-sms-awssupport-long-code.html

我刚刚使用这些值对此进行了测试:

    String message = "This is a Pinpoint test"; 
    String appId = "2fdc4442c6a2483f85eaf7a9430xxxxx";
    String originationNumber = "+14387956xxx" ;
    String destinationNumber = "+18195765xxx" ; 
    System.out.println("Sending a message" );

回复是:

+18195765xxx:MessageResult(DeliveryStatus=SUCCESSFUL, MessageId=4eniddp3gqrsarku8q2i2vnqqo0v8eov0t1dhs80, StatusCode=200, StatusMessage=MessageId:

app id可以从AWS管理控制台获取:

要获取原始编号 - 您在 AWS 控制台中请求一个代码并在您的应用程序逻辑中使用它:

未明确启用 SNS 消息传递。确保仔细检查此设置