sns Nodejs 发布到特定手机

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

我最近开发了一个需要发送短信的项目,亚马逊的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'
  }
node.js amazon-sns aws-sdk-nodejs
1个回答
0
投票

上述问题可能发生在以下任一场景中:

  1. SDK版本不匹配(如果是这样就需要重新安装SDK)
  2. 访问密钥或秘密密钥不正确
  3. 访问密钥或秘密密钥权限不足
  4. 如果该服务在他们尝试访问的区域不可用。

对于这种情况,重新安装 SDK 有效。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.