使用PHP SDK的AWS SNS-未捕获的异常

时间:2019-03-19 11:27:56

标签: php aws-sdk amazon-sns

使用适用于PHP的AWS开发工具包v.3.90.3,我正尝试直接发送SMS而不订阅主题。

经过大量Google搜索后,没有获得正确的结果,并且在阅读了有关PHP的AWS SNS的所有主题之后,我不得不要求别人提供一个想法,以找到正确的做事方法。

我的开发代码在加载aws-autoloader.php并将值放在变量$ code和$ phonenumber中之后,是:

error_reporting(E_ALL);

ini_set("display_errors", 1);

$params = array(
  'credentials' => array(
    'key' => 'ofcoursemykey',
    'secret' => 'ofcoursemysecretkey',
  ),
  'region' => 'eu-west-1',
  'version' => 'latest'
);

$sns = new \Aws\Sns\SnsClient($params);

$args = array(
    "MessageAttributes" => [
         'AWS.SNS.SMS.SenderID' => [
              'DataType' => 'String',
              'StringValue' => 'MY-BRAND'
         ],
         'AWS.SNS.SMS.SMSType' => [
               'DataType' => 'String',
               'StringValue' => 'Transactional'
          ]
    ],
    "Message" => "This is your code: $code",
    "PhoneNumber" => "$phonenumber"
);

$result = $sns->publish($args);
echo "<pre>";
var_dump($result);
echo "</pre>";

但我收到此错误:

  

致命错误:未捕获的异常'Aws \ Sns \ Exception \ SnsException'与   消息“在执行“发布”时出错   “ https://sns.eu-west-1.amazonaws.com”; AWS HTTP错误:客户端错误:   POST https://sns.eu-west-1.amazonaws.com导致403   禁止回应:   发件人Authorizati (truncated...) AuthorizationError (client): User: arn:aws:iam::xxxxxxxxxxxxx:user/yyyyyyyyyyy is not authorized to perform: SNS:Publish on resource: +1234567890 - Sender AuthorizationError用户:   arn:aws:iam :: xxxxxxxxxxxxxxxxx:user / yyyyyyyyyyyy未经授权   执行:SNS:发布在资源上:+1234567890    zzzzzzzzzzzzzzzzzzzzzzzzzzzz'   GuzzleHttp \ Exception \ ClientException:客户端错误:POST   https://sns.eu-west-1.amazonaws.com导致403禁止   /home/xxxxxxxxx/aws_sdk/Aws/WrappedHttpHandler.php在第191行

我当然有一个AWS账户,一个ARN以及一个正确的AWS SNS授权密钥和秘密密钥。开发人员机器是AWS Lightsail之下的实例,而不是Ec2,但我认为这并不重要,因为可以在网络中的任何地方使用SDK。

0 个答案:

没有答案