我正在集成 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 的邮件
但仍然收到带有随机短号码的消息。为什么?
从 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,
},
},