AWS SNS参数电话号码无效

时间:2017-10-04 15:12:40

标签: php amazon-web-services web amazon-sns

我正在尝试学习aws sns服务以从我的Web应用程序发送短信。 我正在使用localhost。

$params = array(
    'credentials' => array(
        'key' => 'iam_key',
        'secret' => 'iam_secret',
    ),
    'region' => 'ap-south-1', // < your aws from SNS Topic region
    'version' => 'latest',
    'http' => ['verify'=>false]
);
$sns = \Aws\Sns\SnsClient::factory($params);

$msgattributes = [
        'AWS.SNS.SMS.SenderID' => [
            'DataType' => 'String',
            'StringValue' => 'Klassroom',
        ],
        'AWS.SNS.SMS.SMSType' => [
            'DataType' => 'String',
            'StringValue' => 'Transactional',
        ]
    ];

$payload = array(
        'Message' => "HK test",
        "PhoneNumber" => "1234567890",
        'MessageAttributes' => $msgattributes
    );

$result = $sns->publish($payload);

我想直接在号码上发送短信。此代码提供此错误

致命错误:未捕获的异常'Aws \ Sns \ Exception \ SnsException',消息'错误执行'发布“on”https://sns.ap-south-1.amazonaws.com“; AWS HTTP错误:客户端错误:POST https://sns.ap-south-1.amazonaws.com导致400 Bad Request响应:发件人InvalidPara (truncated...) InvalidParameter (client): Invalid parameter: PhoneNumber Reason: +1234567890 is not valid to publish to - Sender InvalidParameter Invalid parameter: PhoneNumber Reason: +1234567890 is not valid to publish to 13e181c2-a20f-5e77-9c8e-d38c55c50266 ' exception 'GuzzleHttp\Exception\ClientException' with message 'Client error: POST https://sns.ap-south-1.amazonaws.com resulted in a 400 Bad Request

我不知道为什么......

3 个答案:

答案 0 :(得分:0)

我认为AWS的电话号码必须包含国家/地区代码。

例如,如果我的电话号码为(999) 365-6721,则为+19993656721(适用于美国)

答案 1 :(得分:0)

即使我使用正确的国家/地区代码(例如+ 57xxxxxxxxxx)作为前缀的有效电话号码调用API,也遇到了完全相同的问题。

然后,我在互联网上经过一些线程运行后才发现,这仅仅是由于 REGION_CODE (例如 us-west-1 < / strong>,而不是在实例化SNSClient类时使用的 us-east-1

    @Bean
public AmazonSNS snsClient() {
    return AmazonSNSClientBuilder.standard().withRegion("us-east-1").withCredentials(new AWSStaticCredentialsProvider(credentials())).build();
}

请参阅link,以找到适合您情况的正确区域代码。

答案 2 :(得分:0)

您需要使用支持AWS SNS的SMS的区域。

更多信息:https://docs.aws.amazon.com/sns/latest/dg/sms_supported-countries.html