Intereting Posts
неопределенная переменная, но переменная определена / объявлена Можно ли заменить функцию в php (например, почту) и заставить ее сделать что-то еще? Отменить внутри array_walk_recursive не работает Может ли PHP «писать» или «копировать» на удаленном удаленном ресурсе, но не «отключать» или «переименовывать» («Доступ запрещен») Соответствующие римские номера Перенаправить все HTTP-ссылки на HTTPS для интерфейса в magento PHP: Как определить тип MIME вложений электронной почты? Можете ли вы повторно заполнить входы файлов после неудачной отправки формы с помощью PHP или JavaScript? Получение данных для нескольких одиночных или справочных без использования оператора Является ли время () хорошей солью? Запрос AJAX от строк таблицы к деталям Динамическое поле выбора для заполнения текстового поля с использованием AJAX или jQuery и PHP Передать относительный путь в абсолютный URL с помощью PHP Вложенные php включают поведение Laravel не может десериализовать модель с помощью столбца POINT mysql

Отправка SMS с помощью услуг Amazon AWS PHP

У меня возникли проблемы с копированием документации для AWS PHP-sdk от Amazon.

В принципе, мне просто нужно отправить стандартное текстовое сообщение на номер. Я знаю, что это возможно, потому что amazon позволяет отправлять сообщения через консоль напрямую через этот экран:

SMS-сообщение Amazon Console

В нем говорится об использовании метода «публикации», но, просматривая эту документацию, на самом деле не было ответов. Ссылка #Publish

Любая помощь или руководство приветствуются. В настоящее время я ищу решение, которое использует V2 для sdk.

Заранее спасибо.

Нет, где есть документ, показывающий его использование с PHP. Чтение Java и C # sdk Я написал версию PHP, которая работает.

Сначала установите aws / aws-sdk-php . Использование композитора:

composer require aws/aws-sdk-php

Создайте файл php с:

 require './vendor/autoload.php'; error_reporting(E_ALL); ini_set("display_errors", 1); $params = array( 'credentials' => array( 'key' => 'YOUR_KEY_HERE', 'secret' => 'YOUR_SECRET_HERE', ), 'region' => 'us-east-1', // < your aws from SNS Topic region 'version' => 'latest' ); $sns = new \Aws\Sns\SnsClient($params); $args = array( "SenderID" => "SenderName", "SMSType" => "Transactional", "Message" => "Hello World! Visit www.tiagogouvea.com.br!", "PhoneNumber" => "FULL_PHONE_NUMBER" ); $result = $sns->publish($args); echo "<pre>"; var_dump($result); echo "</pre>"; 

Результат должен иметь один массив со многими данными, включая MessageId.

Если вы используете версию AWS SDK до 3.0, вы все равно создаете тему и подписываетесь с типом SMS. Но начиная с 3.0, вы можете отправить SMS прямо на номер.

  $client = SnsClient::factory(array( 'region' => 'us-east-1', 'version' => 'latest', 'credentials' => array( 'key' => 'key', 'secret' => 'secret') )); $message = 'Your verification code is 4'; $payload = [ 'TopicArn' => 'arn:aws:sns:XXXXX', 'Message' => $message, 'MessageStructure' => 'string', 'MessageAttribute' => [ 'AWS.SNS.SMS.SenderID' => [ 'DataType' => 'String', 'StringValue' => 'Sender', ], 'AWS.SNS.SMS.SMSType' => [ 'DataType' => 'String', 'StringValue' => 'Transactional', ] ] ]; $result = $client->subscribe(array( 'TopicArn' => 'arn:aws:sns:XXXXX', 'Protocol' => 'sms', 'Endpoint' => 'XXXXXXXXXXX', )); $subarn = $result['SubscriptionArn']; $result = $client->publish($payload); $result = $client->unsubscribe(array( 'SubscriptionArn' => $subarn, )); 

Чтобы использовать действие «Опубликовать» для отправки сообщения на конечную точку мобильного устройства, например приложение на устройстве Kindle или на мобильном телефоне, вы должны указать EndpointArn.

 $result = $client->publish(array( 'TopicArn' => 'string', 'TargetArn' => 'string', // Message is required 'Message' => 'string', 'Subject' => 'string', 'MessageStructure' => 'string', 'MessageAttributes' => array( // Associative array of custom 'String' key names 'String' => array( // DataType is required 'DataType' => 'string', 'StringValue' => 'string', 'BinaryValue' => 'string', ), // ... repeated ), ));