-1

我正在尝试使用以下代码使用 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'
        ]
    );

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

4

2 回答 2

4

我不得不更新 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);
于 2016-11-29T06:38:31.810 回答
2

来自PHP的Amazon SNSPublish()文档:

  • TargetArn:如果不为TargetArn参数指定值,则必须为PhoneNumberorTopicArn参数指定值。
  • TopicArn:如果不为TopicArn参数指定值,则必须为PhoneNumberorTargetArn参数指定值。
  • PhoneNumber:如果不为PhoneNumber参数指定值,则必须为TargetArnorTopicArn参数指定值。

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

于 2016-11-29T06:35:49.297 回答