我最近开发了一个需要发送短信的项目,亚马逊的sns,旧版本可以顺利发送,但是新版本无法发送到PhoneNumber(我仍然可以使用v2,但它将被终止,我不能冒应用程序停止的风险),我该如何发送? 我试过这样:
const { SNSClient, PublishCommand } = require("@aws-sdk/client-sns");
const { fromEnv } = require("@aws-sdk/credential-providers");
async function sendMessage(message, phoneNumber) {
const snsClient = new SNSClient({
credentials: fromEnv(),
region: process.env.AWS_REGION,
});
const params = {
Message: message,
PhoneNumber: phoneNumber, // Use this to send directly to a phone number
};
try {
const command = new PublishCommand(params);
const data = await snsClient.send(command);
console.log("SMS SEND SUCCESS", data);
} catch (err) {
console.log("Error", err);
}
}
module.exports = { sendMessage };
但是不工作,直接返回:
Error: {
Type: 'Sender',
Code: 'InvalidParameter',
Message: 'Invalid parameter: TopicArn or TargetArn Reason: no value for required parameter',
message: 'Invalid parameter: TopicArn or TargetArn Reason: no value for required parameter'
}
上述问题可能发生在以下任一场景中:
对于这种情况,重新安装 SDK 有效。