API для отправки SMS сообщений

В данном форуме описаны все API, поддерживаемые нашими услугами.

Re: API для отправки SMS сообщений

Сообщение sd » 28 фев 2013, 01:27

armexcapital писал(а):Друзья, помогите!
Никогда до этого не работал с API и ничего в этом не понимаю, кроме того что формируется запрос к файлу http://api.comtube.ru/scripts/api/sms.php

Проблема у меня возникает со значением переменной signature, как я понимаю она включается в себя данные для авторизации (логин пароль в мд5), никакого скрипта для формирования этого значения не писал, просто создал запрос в конце которого добавил &username=(логин)&password=(пароль в MD5) но мне выдает ошибку 401

Все это нужно для небольшого php скрипта, который служит для заказа клиентом услуги, мне бы хотелось чтобы после того как клиент сделает заказ я получал на свой телефон SMS с уведомлением.

Может у кого-нибудь есть готовый вариант скрипта для правильного формирования signature на PHP с описание? Буду благодарен за помощь.

Готовая функция по формированию подписи - viewtopic.php?f=33&t=495#p2618. На вход нужно передать массив с параметрами и пароль, а на выходе уже список параметров без базовой части.
Аватара пользователя
sd
 
Сообщения: 5184
Зарегистрирован: 31 июл 2009, 13:11

Re: API для отправки SMS сообщений

Сообщение armexcapital » 28 фев 2013, 07:16

Спасибо, наш программист уже переделал

Код: Выделить всё
<?

class params
{
action = 'send';
number = 'номер получателя';
name = 'Оповещение';
message = 'Новый клиент';
charset = 'utf-8';
username = 'логин';
report_to = 'email';
password = 'пароль';
}



function BuildUrlParamsWithSignature($params, $password)
{
    ksort($params);

    $url = 'http://api.comtube.ru/scripts/api/sms.php';

    if (!is_array($params))
        return $url;

    foreach($params as $key => $value)
    {
        $url .= $key . "=" . urlencode($value) . "&";
    }

    $signature = md5($url . "&password=".urlencode($password));

    $url .= "signature=" . $signature;

    return $url;
}

?>
Последний раз редактировалось armexcapital 09 май 2013, 06:11, всего редактировалось 1 раз.
armexcapital
 
Сообщения: 3
Зарегистрирован: 22 фев 2013, 21:31

Re: API для отправки SMS сообщений

Сообщение sd » 28 фев 2013, 07:55

armexcapital писал(а):Спасибо, я это уже читал, но скорее всего у меня мало знаний в php... вот код, теорию понял, но на практике не могу написать, поправьте пожалуйста:
...

Параметры можно задать так:

Код: Выделить всё
// создание массива с параметрами
$params['action'] = 'send';
$params['number'] = 'номер получателя';
$params['name'] = 'Оповещение';
$params['message'] = 'Новый клиент';
$params['charset'] = 'utf-8';
$params['username'] = 'логин';
$params['report_to'] = 'email';

// формирование строки с параметрами и подписью
$url_params = BuildUrlParamsWithSignature($params, 'пароль');

// обращение в api для отправки sms сообщения
$res = file_get_contents('http://api.comtube.com/scripts/api/sms.php?' . $url_params);

// вывод результата вызова api
echo $res;


Пароль в параметрах указывать не нужно, его нужно только передать в указанную функцию, как указано в примере. И еще уберите из BuildUrlParamsWithSignature вашу строку $url = 'http://api.comtube.ru/scripts/api/sms.php';
Аватара пользователя
sd
 
Сообщения: 5184
Зарегистрирован: 31 июл 2009, 13:11

Re: API для отправки SMS сообщений

Сообщение armexcapital » 28 фев 2013, 17:17

Все верно.
Довольно непростой механизм, не как у других сервисов.
Последний раз редактировалось armexcapital 09 май 2013, 06:13, всего редактировалось 1 раз.
armexcapital
 
Сообщения: 3
Зарегистрирован: 22 фев 2013, 21:31

Re: API для отправки SMS сообщений

Сообщение BubnovRV » 05 мар 2013, 06:59

<sent_at> в отчете о доставке в UTC?
BubnovRV
 
Сообщения: 192
Зарегистрирован: 06 мар 2012, 05:41
Откуда: Новосибирск

Re: API для отправки SMS сообщений

Сообщение sd » 06 мар 2013, 02:57

BubnovRV писал(а):<sent_at> в отчете о доставке в UTC?

Нет, должна быть в часовом поясе, указанном в настройках профиля.
Аватара пользователя
sd
 
Сообщения: 5184
Зарегистрирован: 31 июл 2009, 13:11

Re: API для отправки SMS сообщений

Сообщение BubnovRV » 06 мар 2013, 07:04

Да нет в UTC
Код: Выделить всё
 <?xml version="1.0" encoding="utf-8" ?>
- <result>
- <numbers>
- <item>
  <id>2262584</id>
  <uid>0d3f1e3f-08fc-4e69-887b-61dc44c307fe</uid>
  <sent_at>2013-03-06 02:55:17</sent_at>
  <number>79037976378</number>
  <parts_cnt>1</parts_cnt>
  <parts_sent>0</parts_sent>
  <status>10</status>
  <desc>No error</desc>
  </item>
  </numbers>
  <code>200</code>
  <desc>OK</desc>
  </result>

У меня во время отправки СМС на часах 9:55, в настройках на сайте стоит +7.
BubnovRV
 
Сообщения: 192
Зарегистрирован: 06 мар 2012, 05:41
Откуда: Новосибирск

Re: API для отправки SMS сообщений

Сообщение sd » 06 мар 2013, 09:17

BubnovRV писал(а):Да нет в UTC
...
У меня во время отправки СМС на часах 9:55, в настройках на сайте стоит +7.

Значит, это баг, который будет в ближайшее время исправлен. Время должно быть в вашем часовом поясе.
Аватара пользователя
sd
 
Сообщения: 5184
Зарегистрирован: 31 июл 2009, 13:11

Re: API для отправки SMS сообщений

Сообщение BubnovRV » 06 мар 2013, 10:43

Не надо исправлять, мне как раз в UTC нужно. Да и потом как быть пользователям, которые уже пользуются им как UTC?
BubnovRV
 
Сообщения: 192
Зарегистрирован: 06 мар 2012, 05:41
Откуда: Новосибирск

Re: API для отправки SMS сообщений

Сообщение sd » 06 мар 2013, 22:13

BubnovRV писал(а):Не надо исправлять, мне как раз в UTC нужно. Да и потом как быть пользователям, которые уже пользуются им как UTC?

Не, в любом случае, это не порядок. Должно быть однообразно, если даже и безобразно. Все API возвращают время в часовом поясе, указанном в личном кабинете. И исключений быть не должно. Иначе со временем будет полный бардак.

P.S. Единственное, что можно подумать над тем, чтобы возвращать данные в часовом поясе, указанном в запросе к API (например, 'Europe/Moscow', 'UTC', и т.д.), но это уже другая тема.
Аватара пользователя
sd
 
Сообщения: 5184
Зарегистрирован: 31 июл 2009, 13:11

Пред.След.

Вернуться в API

Просмотр страницы «Кто сейчас на форуме COMTUBE»

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3