Использование 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 предназначен для использования из любой точки сети.