使用aws sns将短信发送给印度号码

时间:2016-11-28 18:04:32

标签: php sms amazon-sns aws-php-sdk

我正在尝试使用以下代码使用aws sns将短信发送到特定号码,但它需要一个目标/主题arn,这对我不适用,因为我想将短信发送到我在参数中设置的数字

$client = SnsClient::factory([
        'credentials' => [
            'key'    => "my key",
            'secret' => "my secret"
        ],
        'region'  => "us-east-1",
        'version' => "latest"
    ]);

    $sent = $client->publish(
        [

            'Message' => 'This is the message',
            'PhoneNumber' => '+91887******7'
        ]
    );

我无法找到发布对象的确切参数。

2 个答案:

答案 0 :(得分:3)

我不得不更新aws php sdk(1)。然后下面的代码工作正常 -

$sns = SnsClient::factory(array(
        'credentials' => array(
            'key' => 's3_key',
            'secret' => 's3_secret'
        ),
        'region' => Constants::$s3Region,
        'version' => 'latest'
    ));

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

    $payload = array(
        'Message' => $message,
        'PhoneNumber' => $number,
        'MessageAttributes' => $msgattributes
    );

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

答案 1 :(得分:2)

来自Amazon SNS Publish() documentation for PHP

  • TargetArn:如果您没有为TargetArn参数指定值,则必须为PhoneNumberTopicArn参数指定值
  • TopicArn:如果您没有为TopicArn参数指定值,则必须为PhoneNumberTargetArn参数指定值
  • PhoneNumber:如果您没有为PhoneNumber参数指定值,则必须为TargetArnTopicArn参数指定值

因此,请提供PhoneNumber而不是目标/主题。

相关问题