AWS SNS с использованием PHP SDK - необученное исключение - PullRequest
0 голосов
/ 19 марта 2019

Использование AWS SDK для PHP v.3.90.3 Я пытаюсь напрямую отправлять СМС без подписки на темы.

После того, как Googled много без должных результатов, и после прочтения здесь всех тем для AWS SNS с PHP, я должен попросить кого-то найти идею, как найти правильный способ сделать что-то.

Мой код разработки после загрузки aws-autoloader.php и помещения значений в переменные $ code и $ phonenumber:

<code>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 "
";

но я получаю эту ошибку:

Неустранимая ошибка: необработанное исключение '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: пользователь / yyyyyyyyyyyy не авторизован для выполнить: SNS: опубликовать на ресурсе: +1234567890 zzzzzzzzzzzzzzzzzzzzzzzzzz ' GuzzleHttp \ Exception \ ClientException: ошибка клиента: POST https://sns.eu -west-1.amazonaws.com привело к 403 Запретить в /home/xxxxxxxxx/aws_sdk/Aws/WrappedHttpHandler.php в строке 191

Конечно, у меня есть учетная запись AWS, ARN и правильный ключ авторизации и секретный ключ для AWS SNS. Машина dev является экземпляром под AWS Lightsail, а не Ec2, но я считаю, что это не важно, поскольку SDK предназначен для использования из любой точки сети.

...