使用Amazon SNS在Node.js中发送短信:无效参数:电话号码原因:+XXXX无法发布。

3

以下是我使用AWS短信服务向特定号码发送短信的代码。

var AWS = require('aws-sdk');

        AWS.config.update({
            accessKeyId: '{ID}',
            secretAccessKey: '{KEY}',
            region: 'us-east-2'
        });
        var sns = new AWS.SNS();

        var params = {
            Message: 'this is a test message',
            MessageStructure: 'text',
            PhoneNumber: '+XXXXXXXX'
        };

        sns.publish(params, function(err, data) {
            if (err) console.log(err, err.stack); // an error occurred
            else     console.log(data);           // successful response
        });

但我在控制台中看到了以下错误信息

'InvalidParameter: 无效参数:电话号码原因:+XXXXXX不可用于发布


你使用的是真实电话号码还是+XXXXXX?如果是真实的,能否展示一下格式?我的意思是像+123456789012这样的。 - Molda
是的,我在使用真实的电话号码,格式为+91XXXXX,其中91是国家代码。 - Jabaa
您可以使用AWS命令行界面(CLI)测试向电话号码发送消息。请尝试以下操作:aws sns publish --phone-number +91XXXX --message "published" - John Rotenstein
但我需要APIs。 - Jabaa
@Jabaa 我们明白这一点,但是再次强调,这是一个故障排除步骤:你可以使用这种方式测试数字,以确定问题是(a)数字还是(b)你的代码。如果错误相同,则问题在于数字。如果错误不同或没有错误发生,则问题在于你的代码。 - Michael - sqlbot
4个回答

11

请尝试将区域设置为"us-east-1"。这在我之前起过作用。

var sns = new AWS.SNS({ "region": "us-east-1" });

5

2

1
不,那不是真的。我可以在我的AWS SNS控制台中向印度号码发送消息。 - Jabaa

1

将您的区域从us-east-2更改为us-east-1,这对我有用。

var sns = new aws.SNS({
    "accessKeyId": functions.config().aws.key,
    "secretAccessKey": functions.config().aws.secret,
    "region": "us-east-1",
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接