API SMS-центра SMSPILOT.RU

SMS-шлюз SMSPILOT.RU - это сервер отправки SMS с помощью HTTP-запросов. Вам не нужно покупать gsm-модем. Ваш программист может добавить отправку SMS на сайт, интернет-магазин, Android-приложение или в программу для Windows.

API-1 Отправка/статус/баланс

API-1 позволяет: отправить SMS, разослать SMS на несколько номеров за один запрос, отправлять длинные SMS, получить статус сообщения, узнать баланс, указать транслит/кодировку, указать дату/время отправки и время жизни SMS, указать callback-url для получения статуса, привязать реферала, указать эл. почту для отладки, получить список входящих SMS. Ответ в текстовом формате, XML или JSON.

  1. <?php // используем библиотеку
  2. include('smspilot.php');
  3. sms('79081231212','Привет Мир!');
  4. sms('79131231212','Ваш заказ отправлен!','example.com');
  5. sms('79511231212,79511231213','Ваш сын получил 2 за поведение (отправлял смски во время урока)!','School');
  6. ?>
  1. <?php // отправка sms без cURL и дополнительных библиотек (API 1.x)
  2. echo file_get_contents('http://smspilot.ru/api.php?send=Hello&to=79087964781&apikey=XYZ');
  3. echo file_get_contents('http://smspilot.ru/api.php?send=Example&to=79087964781,79131437355&from=smspilot.ru&send_datetime=2016-07-25%2020:17:39&charset=windows-1251&apikey=XYZ');
  4. ?>

Скачать описание интеграции по протоколу HTTP v1.9.15 (rtf) (pdf)   2015-04-17

API-2 Продвинутые возможности

API-2 сложнее, но интереснее, т.к. позволяет в одном пакете отправлять разные сообщения, поддерживаются форматы XML или JSON, поддерживается client_id, режим отладки, проверка статуса, выборка входящих, привязка партнера.

Copy Source | Copy HTML
  1. <?php
  2. $apikey = 'XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ'; // заменить на свой!
  3. $send = array(
  4.     'apikey' => $apikey,
  5.     'send' => array(
  6.         array('from' => 'smspilot.ru', 'to' => '79087964781', 'text' => "Перенос\nстроки"),
  7.         array('from' => 'smspilot.ru', 'to' => '79131437355', 'text' => 'Отложенная отправка', 'send_datetime' => time() + 24 * 3600),
  8.         array('from' => 'ОШИБКА', 'to' => '791122233322', 'text' => 'Неправильное имя отправителя')
  9.     )
  10. );
  11. $result = file_get_contents('http://smspilot.ru/api2.php', false, stream_context_create(array(
  12.     'http' => array(
  13.         'method' => 'POST',
  14.         'header' => "Content-Type: application/json\r\n",
  15.         'content' => json_encode( $send ),
  16.     ),
  17. )));
  18. echo '<pre>request data --
    '.print_r( $send, true ).'

    raw response --
    '.$result.'

    json_decode --
    '.print_r( json_decode( $result ), true ).'

    </pre>';
  19. ?>

Скачать описание интеграции по протоколу HTTP v2.4.15 (rtf) pdf   2015-04-07

API-ключ

  • API-ключ - это 64-символьная строка, которая служит для авторизации внешних приложений.
  • API-ключ доступен на странице: Личный кабинетНастройкиAPI

  • Для тестирования можно использовать ключ эмулятор (реальной отправки SMS не происходит).

    $test_apikey = "XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ";

API Приём входящих SMS

  1. Сообщения принимаются на номер 79037672215
  2. Текст должен начинаться с номера договора, например 123 test inbound
  3. Наш сервер отправляет POST-уведомления на заданный в настройках адрес ($_POST['phone'] - телефон, $_POST['message'] - текст)
  4. Извлечь список входящих можно запросом http://smspilot.ru/api.php?inbound=all&apikey=XYZ (см. документацию к API-1)
  5. Стоимость обработки - 0.29 руб.

Подробное описание сервиса приём входящих SMS

API имена отправителя

Можно отправить заявку на регистрацию имени отправителя по API.

http://smspilot.ru/api.php?add_sender=Sender&description=Description&callback=http://example.com/t.php&format=text&test=0&apikey=API-ключ

  • add_sender - правильное имя отправителя
  • description - название проекта, адрес сайта, примеры сообщений (не забудьте urlencode!)
  • callback - URL скрипта (не забудьте urlencode!) для уведомления о результатах проверки, будет вызван с параметрами:
    • $_POST['sender'] - имя отправителя
    • $_POST['id'] - код отправителя
    • $_POST['status'] - статус проверки: 1 - Имя принято, -1 - администратор отклонил заявку
    • Скрипт должен вернуть ОК
    • Тестирование callback-скрипта
  • callback - может быть адресом эл. почты
  • format - формат возвращаемого сообщения text, xml, json
  • test - 0 - реальная регистрация, 1 - отладка
  • возращается ID добавленного имени
    SUCCESS=12345
    <id>12345</id> - при &format=xml
    {"id": 12345} - при &format=json
    или ошибка
    ERROR=123: ERROR TEXT
    <error><code>123</code><description>ERROR TEXT</description><description_ru>ТЕКСТ ОШИБКИ</description_ru></error> - при &format=xml {"error": {"code": "123", "description": "ERROR TEXT", "description_ru": "ТЕКСТ ОШИБКИ"}}'; - при &format=json
  • ошибки
    640 Введите имя отправителя
    641 Неправильное имя отправителя
    642 Уже добавленное имя отправителя
    643 Введите название проекта, сайт, примеры сообщений
    644 Нужен callback (URL или email)
    645 Неправильный callback (URL или email)

Как получить список отправителей?

Метод 1: См. метод "Информация о пользователе" в документации

Метод 2: list=senders

http://smspilot.ru/api.php?list=senders&format=json&apikey=API-ключ

  • list=senders - показать список отправителей
  • если format=json
    {"senders": [
    	{"id":"123","sender":"MyCompany","status":"1"},
    	{"id":"124","sender":"Err-999","status":"-1"}
    ]}
    
  • format=xml
    <senders>
    <s id="123" sender="MyCompany" status="1" />
    <s id="124" sender="INF-Err" status="-1" />
    </senders>
    
  • format=text (по умолчанию)
    123,MyCompany,1
    124,INF-Err,-1
    
  • status: 1 - заявка принята, -1 - заявка отклонена, 0 - заявка ещё рассматривается

API антиспам-шаблоны

Шаблоны нужны реселлерам, чтобы в атоматическом режиме отправлять шаблоны SMS на проверку, связанную с запретом на рекламу без договора.

http://smspilot.ru/api.php?add_template=template_text&callback=http://example.com/t.php&format=text&apikey=API-ключ

  • add_template - текст шаблона с подчеркиваниями на месте подстановки
  • callback - URL для уведомления о результатах проверки
    • $_POST['type'] - тип
      -3 - реклама с подстановкой строк
      -2 - реклама с подстановкой чисел/дат
      -1 - реклама 1 - уведомление
      2 - уведомление с подстановкой чисел/дат
      3 - уведомление с подстановкой строк
    • $_POST['status'] - статус
      -2 - запрещено
      -1 - есть вопросы (ответить в ЛК)
      2 - принят
    • Скрипт должен вернуть ОК
  • callback - может быть адресом эл. почты
  • format - формат возвращаемого сообщения text, xml, json
  • возращается ID добавленного шаблона
    SUCCESS=12345
    <id>12345</id> - при &format=xml
    {"id": 12345} - при &format=json
    или ошибка
    ERROR=123: ERROR TEXT
    <error><code>123</code><description>ERROR TEXT</description><description_ru>ТЕКСТ ОШИБКИ</description_ru></error> - при &format=xml {"error": {"code": "123", "description": "ERROR TEXT", "description_ru": "ТЕКСТ ОШИБКИ"}}'; - при &format=json
    ошибки
    630 Пустой текст шаблона
    631 Слишком длинный текст шаблона
    632 Такой уже есть
    633 Не указан callback
    634 callback не правильный

Email2SMS

Используйте обычную электронную почту для отправки SMS.

Отправка SMS на телефон указанный при регистрации:

От кого: не важно
Кому: 79999999999@smspilot.ru
Тема: не важно Текст: проверка

79999999999 - замените на телефон указанный при регистрации на сайте smspilot.ru
текст проверка замените на свой

Используем тему письма для передачи параметров отправки SMS

От кого: не важно
Кому: email2sms@smspilot.ru
Тема: to=79999999999&apikey=XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ
Текст: проверка

79999999999 - замените на номер получателя, а строку
XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ замените на свой API-ключ
текст проверка замените на свой

В теме письма можно указать и другие параметры, см. документацию к API-1, в том числе логин и пароль вместо API-ключа

Ошибки

КодТекст (EN)Текст (RU)
0SuccessНет ошибок
10INPUT data is requiredНет входных данных
11Unknown INPUT formatНеизвестный формат
12XML structure is invalidОшибка XML
13JSON structure is invalidОшибка JSON
14Unknown COMMANDНеизвестная команда
100APIKEY is requiredНе указан API-ключ (параметр apikey)
101APIKEY is invalidНеправильный API-ключ (см. настройки API в личном кабинете)
102APIKEY not foundТакой API-ключ не найден в системе
105User is blocked (balance)Пользователь блокирован из-за низкого баланса
106User is blockedПользователь блокирован за спам/ошибки
108Phone is requiredНе указан телефон
110System errorСистемная ошибка
111Invalid phoneНеправильный номер телефона
112No moneyНет денег
113IP restrictionНедопустимый IP
115Invalid senderНеправильный отправитель
200Sender (from) is requiredНе указан отправитель
201Sender (from) is invalidНеправильный формат отправителя
204Sender (from) unregisteredОтправитель (from) не зарегистрирован
212Phone is depricatedПолучатель запретил получение SMS
213Unsupported operatorОператор не поддерживается
214Phone is dublicatedДубликат получателя
215Invalid phone lengthНеправильная длина номера телефона
220TEXT is requiredВведите текст сообщения
221TEXT too longТекст сообщения слишком длинный
223Spam protectionЗащита от спама
230ID is invalidID неправильный
231PACKET_ID is invalidPACKET_ID неправильный
240Invalid SMS listНеправильный список SMS
243Loop protectionЗащита от дубликатов
247FilterФильтры
248CyrLat filterКириллица и латиница в одном слове
250Invalid SEND_DATETIMEНеправильное время отправки
260Invalid callback URLНеправильный адрес скрипта
270Invalid ttlНеправильное время жизни сообщения
300SMS server_id is requiredserver_id не указан
301SMS server_id is invalidserver_id неправильный
302SMS server_id not foundSMS не найдена
303Invalid IDs listОшибка запроса
304SERVER_PACKET_ID is invalidserver_packet_id неправильный
400User not foundПользователь не найден
401Invalid login detailsНе введен логин или пароль
500Invalid -since- format YYYY-MM-DD HH:II:SSНеправильный формат параметра -since- YYYY-MM-DD HH:II:SS
600ExpiredПросрочено
601UndeliverableНевозможно доставить
602Destination unreachableНомер недоступен
603RejectedОтказано оператором
630TEMPLATE is requiredВведите шаблон
631TEMPLATE too longШаблон слишком длинный
632TEMPLATE exitsТакой шаблон уже есть
633TEMPLATE callback is requiredНужен callback
634TEMPLATE callback is invalidНеправильный callback
640Sender is requiredВведите имя отправителя
641Sender is invalidНеправильное имя отправителя
642Sender is addedУже добавленное имя отправителя
643Description is requiredВведите название проекта, сайт, примеры сообщений
644Callback is required (URL or email)Нужен callback (URL или email)
645Callback is invalid (URL or email)Неправильный callback (URL или email)

Что дальше?

SMS шлюз, смс шлюз для отправки SMS - это специальный SMS сервер, управление которым Вы осуществляете посредством специальных вызовов через HTTP протокол.

SMS уведомление - это услуга которую оказывает Ваша компания в виде отправки клиенту SMS-сообщения в связи с наступлением определённого события. Например: поздравить с днём рождения, напомнить о необходимости своевременной оплаты, пригласить на мероприятие.


Раньше всё было просто, чтобы автоматически отправить SMS сообщение абоненту, всего то нужно было, что послать электронную почту на адрес шлюза, который преобразовывал его в SMS. Существовало огромное количество онлайн-сервисов и программ которые предлагали получать и посылать SMS-сообщения, не прибегая к использованию при этом мобильного телефона.О днако они ставили ограничение на число сообщений, которые можно было отправить с одного компьютера и такие сообщения почти всегда приходили с номера сервисной службы оператора.
Да, действительно, было очень заманчивым отправлять SMS таким способом. Именно эта простота, к тому же бесплатная и анонимная привела к атакам спамеров и постепенно шлюзы начали закрывать один за другим.

К тому же совсем недавно, очень многие предпочитали, использовать формы отправки SMS на сайтах операторов, с помощью которых можно было отправить смс любому абоненту сети сотового оператора бесплатно. Были программы создатели которых предлагали бесплатную массовую рассылку смс, в которых технически использовались эти формы. Но все операторы пришли к тому, что ограничили доступ к этой возможности добавив лимиты SMS в минуту с одного компьютера и капчу (картинку с кодом) в эти формы. Теперь пользователю подобных программ приходилось вводить сотню раз коды с картинок которые периодически показывала программа. Скорость рассылки - ужасная. К тому же все сообщения приходят с сервисного номера оператора, что ограничивает коммерческие возможности таких сервисов.

Альтернативный метод предлагает SMS Пилот. Речь идёт о полной или частичной автоматизации массовой отправки SMS сообщений в связи с наступлением определённого события. Используя простой протокол любой программист может за несколько минут настроить отправку SMS клиенту, для этого не требуется специалист высокой квалификации, нужно только знать основы HTTP протокола.
Сервис платный, но цена одной SMS очень низкая, согласитесь, что за удобство и качество нужно платить, а бесплатный сыр бывает только сами знаете где.
Итак, преимущества:

Следует привыкать к тому, что сегодня нет бесплатных SMS-шлюзов, все шлюзы платные и требуют авторизации.
SMS Пилот это простой SMS/API для использования SMS уведомлений на своём интернет проекте. SMS Пилот предоставляет HTTP шлюз для отправки сообщений вашим клиентам или пользователям интернет-магазина.