消息属性名称以“AWS”开头。或“亚马逊”。保留供亚马逊使用。 - Nodejs

问题描述 投票:0回答:1

我正在集成 AWS SNS 以向印度手机号码发送消息,并且已经向 DLT 注册了我的 SenderID 并获得了 AWS 的批准。但是,当尝试按照 AWS 的指示在我的代码中包含 EntityID 和 TemplateID 时,我遇到一条错误,指出“消息属性名称以“AWS”开头。或“亚马逊”。保留供亚马逊使用。我到底应该在 AWS SNS 代码中的什么位置包含这些 ID 才能解决此问题?

这是使用nodejs的代码

const sendSnsMessage = async (message, phone) => {
  try {
    let params = {
      Message: message,
      PhoneNumber: phone,
      MessageAttributes: {
        "AWS.SNS.SMS.SMSType": {
          DataType: "String",
          StringValue: "Transactional",
        },
        "AWS.SNS.SMS.SenderID": {
          DataType: "String",
          StringValue: <my-sender-id>,
        },
        "AWS.SNS.SMS.EntityID": {
          DataType: "String",
          StringValue: <entity-id>,
        },
        "AWS.SNS.SMS.TemplateID": {
          DataType: "String",
          StringValue: <template-id>,
        },
      },
    };

    let publishCmd = new PublishCommand(params);
    let sentMsg = await SNS.send(publishCmd);
    return sentMsg;
  } catch (error) {
    console.log("errrr",error.message);
  }
};

编辑:从 EntityID 和 TemplateID 中删除了 AWS 前缀,解决了保留属性错误,但现在接收的是短代码短信;如何使用 AWS SNS 为印度手机号码注册的 SenderID?

SenderID 接受来自 AWS 的邮件

enter image description here

但仍然收到带有随机短号码的消息。为什么?

node.js amazon-web-services amazon-sns aws-pinpoint
1个回答
0
投票

从 EntityID 和 TemplateID 中删除了 AWS 前缀,解决了保留属性错误。

但是,经过一番挣扎,这里的绞盘代码实际上对我有用

 MessageAttributes: {
        "AWS.SNS.SMS.SenderID": {
          DataType: "String",
          StringValue: "GASSOL",
        },
        "AWS.SNS.SMS.SMSType": {
          DataType: "String",
          StringValue: "Transactional",
        },
        "AWS.MM.SMS.EntityId": {
          DataType: "String",
          StringValue: entityId,
        },
        "AWS.MM.SMS.TemplateId": {
          DataType: "String",
          StringValue: templateId,
        },
      },
© www.soinside.com 2019 - 2024. All rights reserved.