Не удалось отправить смс с smsgateway.me после его обновления - PullRequest
0 голосов
/ 11 мая 2018

Я отправлял смс программно, используя php от localhost.Но сегодня после обновления smsgateway.me до v4 я не могу отправить ни одного сообщения.Я на самом деле не знаю, как передать ключ API в данном примере.Я много пробовал, но безуспешно.

Request Endpoint
Endpoint:   https://smsgateway.me/api/v4/message/send
Method: POST
Request Parameters
Name    Location    Required    Description
Content body    true    JSON payload with the information of SMS messages the API should send

Пример запроса

[
  {
    "phone_number": "07791064781",
    "message": "Hello World",
    "device_id": 1
  },
  {
    "phone_number": "07791064782",
    "message": "Hello World",
    "device_id": 2
  }
]

Я также проверяю с почтальоном, но он возвращает "500 Internal Server Error"

Можете ли вы проверитьи помоги мне.Спасибо.

Ответы [ 4 ]

0 голосов
/ 18 мая 2018

Получить токен от https://smsgateway.me. Войдите в свой аккаунт и нажмите на настройки, после чего вы увидите токен.

public function sendMsgWithSmsGatewayApi($msg,$number,$deviceid)
    {
        $curl = curl_init();
        curl_setopt_array($curl, array(
          CURLOPT_URL => "https://smsgateway.me/api/v4/message/send",
          CURLOPT_SSL_VERIFYPEER=>false,
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => "",
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 30,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => "POST",
          CURLOPT_POSTFIELDS => "[{\"phone_number\": \"$number\", \"message\": \"$msg\", \"device_id\": $deviceid}]",
          CURLOPT_HTTPHEADER => array(
            "Cache-Control: no-cache",
            "Postman-Token: 0dfb5acc-f0ae-415b-a5d3-ca12a2dfdfd3",
            "authorization: Your-Token-here"
          ),
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);

        curl_close($curl);

        if ($err) {
          echo "cURL Error #:" . $err;
        } else {
          echo $response;
        }
    }
0 голосов

Я нашел smsGateway.php в прошлом году и смог программно отправить смс, но 10 мая 2018 года приложение перестало работать, я заметил, что приложение смогло подключиться к серверу smsGateway, но не смогло получить сообщения и причина были в том, что программа не смогла разместить смс на сервере smsGateway и, глядя глубже, ошибка заключалась в том, что идентификатор устройства был неверным и неверным, что позволило устранить проблему, обнаруженную в новой версии. от v3 до v4, и для отправки формы моей php-программы на сервер smsGateway требовалась дополнительная информация. Это ключ авторизации, который вы можете найти при доступе к веб-странице со своим логином и паролем. Задача состоит в том, чтобы интегрироваться в smsGateway.php. Я все еще ищу эту программу с изменениями в новой версии, но пока не смог ее найти.

16 мая 2018 г. smsgateway.me теперь опубликовал руководство по интеграции некоторого программного обеспечения для программной отправки смс-сообщений. Это новый вызов, если у вас есть версия PHP 5.3, у вас могут возникнуть проблемы с интеграцией новых программ. Кстати намного сложнее чем v3.

Также есть примечание «Обратите внимание, что мы все еще работаем над документацией и скоро представим новые SDK!» что меня немного пугает. Я все еще работаю над интеграцией, но я обновляю версию PHP до 5.6 и проверю, достаточно ли этого для устранения сообщений об ошибках.

После обновления моего php до 5.5 я смог заставить работать smsgateway.me с https://github.com/smsgatewayme/client-php скачать следующий набор файлов программ

<code>require_once(__DIR__ . '/autoload.php');
use SMSGatewayMe\Client\ApiClient;
use SMSGatewayMe\Client\Configuration;
use SMSGatewayMe\Client\Api\MessageApi;
use SMSGatewayMe\Client\Model\SendMessageRequest;

$clients = new SMSGatewayMe\Client\ClientProvider(
    "your key from website"
);
$sendMessageRequest = new SMSGatewayMe\Client\Model\SendMessageRequest
([
    'phoneNumber' => $HAMiLote['HASMSTel'], 
    'message' => $AXMessage, 'deviceId' => 100701
]);
$sentMessages =   
$clients->getMessageClient()->sendMessages([$sendMessageRequest]);

?><pre><?php print_r($sentMessages); ?>
0 голосов
/ 13 мая 2018

Поскольку документация на веб-сайте является новой и нет примера отправки смс на несколько телефонных номеров, я хочу поделиться этим кодом jQuery, который можно использовать для отправки смс с помощью smsgateway.me.

var p = {
    "phone1": "9999999999",
    "phone2": "8888888888"
};

for (var key in p) {
    if (p.hasOwnProperty(key)) {
        var phone_number = p[key];
        var message = "Test SMS";
        var device_id = 1;
        var obj = [{
            "phone_number": phone_number,
            "message": message,
            "device_id": device_id
        }];
        var mydata = JSON.stringify(obj);
        var settings = {
            "async": true,
            "crossDomain": true,
            "url": "https://smsgateway.me/api/v4/message/send",
            "method": "POST",
            "headers": {
                "Authorization": "YOUR_API_KEY",
                "Content-Type": "application/json",
            },
            "processData": false,
            data: mydata
        }
        $.ajax(settings).done(function(response) {
            console.log(response);
        });
    }
}

Этот код jQuery работает нормально, но иногда он отправляет несколько смс на любое число в данном объекте js. Это может быть из-за петли for.

0 голосов
/ 11 мая 2018

Я прочитал документы на их сайте, и, похоже, вы забыли отправить ключ API вместе с запросом. Если у вас есть ключ API, его нужно отправить в заголовке Authorization.

Authorization: <the api key here>

Используя Почтальон, вы можете установить этот заголовок и повторить попытку.

...