使用Amazon SNS使用PHP AWS SDK v2发送SMS消息?

时间:2017-04-03 17:47:57

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

我继承了一个PHP项目,并且它与AWS SDK v2高度集成。目前不能使用v3。

我的问题是如何利用SNS根据需要向特定号码发送短信?也就是说,我不想在发生操作时向大量订阅特定主题的电话号码发送群发通知,我想在发生操作时向特定的电话号码发送通知。

我遇到了这个https://stackoverflow.com/a/41268045/664881,但似乎是使用了AWS SDK的v3。是否与AWS SDK的v2等效?

1 个答案:

答案 0 :(得分:1)

我设法使其在PHP AWS SDK v2中运行,但是您需要在源代码中添加新参数。

// update file: aws-sdk-php/src/Aws/Sdk/Resources/sns-2010-03-31.php

'Publish' => array(
    'parameters' => array(
        'PhoneNumber' => array( // new parameter
            'type' => 'string',
            'location' => 'aws.query',
        ),
    ),
),

// You just need to publish it and include the `PhoneNumber` parameter
$snsClientResult = $snsClient->publish([
    'Message' => 'YOUR_MESSAGE',
    'PhoneNumber' => 'PHONE_NUMBER',
    'MessageStructure' => 'SMS',
    'MessageAttributes' => [
        'AWS.SNS.SMS.SenderID' => [
            'DataType' => 'String',
            'StringValue' => 'SENDER_ID',
        ],
        'AWS.SNS.SMS.SMSType' => [
            'DataType' => 'String',
            'StringValue' => 'Promotional', // Transactional
        ]
    ]
]);

// Get the response
$snsClientResult['MessageId']