Push#
Через HTTP API поддерживается отправка только текстовых push-сообщений.
Запрос на отправку сообщений#
В HTTP API допустимы POST и GET запросы.
Примеры запросов#
POST-запрос с сообщением на латинице «test» в простом текстовом формате.
POST /login HTTP/1.1
Host: 10.10.10.10:9080
Content-Type: application/x-www-form-urlencoded;charset=utf-8
Content-Length: 58
serviceId=login&pass=123&clientId=79161234567&message=test
POST-запрос с текстом сообщения на кириллице “тест“ в URL-формате.
POST /login HTTP/1.1
Host: 10.241.0.194:9080
Content-Type: application/x-www-form-urlencoded;charset=utf-8
Content-Length: 78
serviceId=login&pass=123&clientId=79161234567&message=%D1%82%D0%B5%D1%81%D1%82
GET-запрос для передачи изображения.
http://partner.ru/login?clientId=79161234567&pass=123&serviceId=login&imageUrl=http://image001.jpg
GET-запрос с сообщением на латинице “test“ в простом текстовом формате и кнопкой с надписью “click“.
http://partner.ru/login?clientId=79161234567&message=test&pass=123&serviceId=login&buttonText=click&buttonLink=http://click
Параметры запросов#
Параметры применимы для POST и GET запросов.
Параметр |
Обязат. |
Тип |
Описание |
|---|---|---|---|
clientId |
да |
string |
Номер телефона абонента, до 25 символов. Подробнее
Примеры: |
message |
нет |
string |
Текст сообщения в кодировке UTF-8. ПодробнееМаксимальная длина: 1000 символов. |
serviceId |
да |
string |
Идентификатор сервиса (логин), от имени которого происходит отправка сообщения. Подробнее
Логин |
pass |
да |
string |
Пароль для авторизации в сервисе. ПодробнееПароль заводится Сервис-провайдером при подключении сервиса и сообщается Партнёру. |
ptag |
нет |
string |
Идентификатор сообщения в системе Партнёра. ПодробнееМожет содержать от 1 до 50 символов. Допустимые символы: 0...9a...zA...Z- Это может быть любой идентификатор в системе Партнёра. Примечание Например, уникальный идентификатор сообщения или идентификатор подразделения,
инициирующего запрос на отправку. В отличие от параметра Сервис-провайдер опционально возвращает Партнёру данный идентификатор в рамках запроса на получение статуса доставки сообщения (этот функционал подробно описан в разделе Сервис получения статусов доставки). |
sending_time |
нет |
string |
Локальное время отправки сообщения абоненту. Подробнее
Задается в формате Предупреждение Если параметр указан, то его значение не может быть пустым. Примечание Например, при значении параметра Часовой пояс абонента определяется не по фактическому местоположению абонента.
Если Партнёр не передает параметр
Если Партнёр передает в параметре |
time_zone |
нет |
string |
Часовой пояс абонента. Подробнее
Задается в формате Если Партнёр передает в этом параметре часовой пояс, то сообщение будет отправлено абоненту по местному времени этого часового пояса, иначе часовой пояс абонента определяется по номеру телефона абонента. Примечание Абонент с хабаровским номером находится в Москве. Возможны следующие варианты отправки:
Для нулевой зоны обязательно указание знака, неважно «+» или «–».
Знак «+» при кодировании URL преобразуется в |
source |
нет |
string |
Имя отправителя. ПодробнееСообщение абоненту будет отправлено с сервисного имени, указанного в данном параметре. Данный параметр не является обязательным. Если параметр отсутствует в запросе, то сообщение будет отправлено абоненту с имени по умолчанию (настройка на стороне Сервис-провайдера). Важно Использование данного параметра недоступно для Партнёра по умолчанию. Функционал может быть включен после согласования с Сервис-провайдером. В этом случае для Партнёра настраивается список разрешенных имен отправителей, либо включается функционал динамической подписи. |
output |
нет |
string |
Формат ответа на запрос. Подробнее
Если Если параметр не задан или имеет другое значение, будет применён формат простой текст (text/plain), см. Ответ на запрос. |
partnerMsgId |
нет |
string |
Уникальный идентификатор сообщения в системе Партнёра. ПодробнееДопустимая длина: от 1 до 50 символов.
Данный параметр используется для контроля повторных отправок и дублирования.
Партнёр может отправить запрос на отправку сообщения с одним и тем же
При этом:
Сервис-провайдер опционально возвращает Партнёру данный идентификатор в рамках запроса на получение статуса доставки сообщения (см. Сервис получения статусов доставки). Использование данного параметра недоступно по умолчанию. Подключение данного функционала нужно согласовать со своим курирующим менеджером. |
shortenLinks |
нет |
boolean |
Параметр указывает, требуется ли сокращать ссылки в тексте сообщения. ПодробнееВажно Используется только для одиночных сообщений.
В случае каскадной доотправки необходимо использовать параметр
Важно Использование данного параметра недоступно по умолчанию. Подключение данного функционала необходимо согласовать со своим курирующим менеджером. Подробнее: см. Сервис сокращения ссылок. |
Ответ на запрос#
Примечание
Сервис-провайдер отправляет сообщения абонентам только при успешной обработке запроса.
Ответ при успешной отправке запроса#
На успешный запрос Сервис-провайдер возвращает Партнёру:
HTTP-код
200 OK;идентификатор сообщения в системе Сервис-провайдера.
OK
4095284974
Ответный код |
Описание |
Возможные действия Партнера |
|---|---|---|
200 |
Успешная обработка запроса.
В теле ответа передаётся идентификатор, присвоенный
сообщению Сервис-провайдером.
Идентификатор представляет собой 64-битное целое
положительное число.
|
Штатная работа с сервисом. |
Ошибки при отправке запроса#
При передаче ошибочного запроса в теле ответа может возвращаться короткое текстовое сообщение об ошибке.
Пример ответа в случае возникновения ошибки неверного сочетания serviceId/pass:
Invalid password
Ответный код |
Описание |
Возможные действия Партнера |
|---|---|---|
400 |
Отсутствуют обязательные параметры или они заданы некорректно. Подробнее
Например, не передан параметр
|
Что делатьПовторить запрос с правильным сочетанием параметров и их корректными значениями. |
401 |
Передано неверное сочетание параметров |
Что делать
Повторить запрос с верными значениями
параметров |
402 |
Исчерпан остаток оплаченных сообщений (для Партнёров, работающих по предоплате). |
Что делатьДля возобновления отправки сообщений необходимо внести предоплату и обратиться к своему курирующему менеджеру. Партнёр не должен повторять запрос. |
403 |
Сервис с переданным |
Что делатьСледует обратиться к своему курирующему менеджеру. Партнёр не должен повторять запрос. |
406 |
Невозможно послать сообщение абоненту с переданным
|
Что делатьПартнёр не должен повторять запрос. |
408 |
Превышение допустимой скорости отправки сообщений. ПодробнееПримечание Для сервиса Партнёра установлена допустимая
скорость 10 запросов в секунду. Партнёр
отправил 12 запросов в секунду. Первые 10
запросов будут успешно обработаны: в ответ
на эти запросы Сервис-провайдер вернет Партнёру
статус |
Что делатьПартнёр может повторить запрос, не превышая допустимой скорости. |
409 |
Запрещена отправка дубликатов. ПодробнееПримечание Для сервиса Партнёра включен
функционал блокировки дубликатов.
Партнёр отправил в течении суток три
запроса для отправки сообщения на один
номер с одинаковым текстом.
Первый запрос будет успешно
обработан, и сообщение будет
отправлено абоненту. В ответ
на последние два запроса
Сервис-провайдер вернет Партнёру статус
Функционал блокировки дубликатов по умолчанию отключен для Партнёра. Функционал может быть включен по просьбе Партнёра. Также Сервис-провайдер может включить функционал блокировки дубликатов для Партнёра при необходимости: например, в ответ на жалобы абонентов. |
Что делатьПартнёр не должен повторять запрос. При необходимости отправки дубликата сообщения, Партнёр может обратиться в службу техподдержки Сервис-провайдера, предоставив наиболее полную информацию об условиях возникновения данной ситуации. |
414 |
Превышение допустимой длины текста сообщения,
переданного в параметре |
Что делатьПартнёр может повторить запрос, сократив текст сообщения до допустимой длины. |
500 |
Внутренняя ошибка сервера. Технические проблемы на стороне Сервис-провайдера. |
Что делать
При получении статуса
При получении статуса |
503 |
Запрос в обработке. Подробнее
Ошибка может возникнуть, если Партнёр
практически одновременно передает несколько
запросов с одним и тем же значением параметра
Пока не обработан первый запрос, на следующие
запросы с тем же |
Что делать
Партнёру следует выдержать паузу и подождать
ответ на первый запрос с переданным значением
параметра Партнёр может повторить запрос, если не получит ответ на первый запрос. |
Ответ в формате XML#
output = xml.200— запрос успешно обработан;500— внутренняя ошибка сервера, технические проблемы на стороне Сервис-провайдера.
Примеры ответов#
Пример ответа в формате XML при успешной отправке запроса (HTTP-код 200) .
<?xml version="1.0" encoding="utf-8"?>
<response>
<code>200</code>
<text>OK</text>
<payload>
<id>4095284976</id>
</payload>
</response>
Пример ответа в формате XML при ошибочной отправке запроса: неверное сочетание serviceId/pass.
<?xml version="1.0" encoding="utf-8"?>
<response>
<code>401</code>
<text>Invalid password</text>
</response>
При получении статуса 500 или при истечении тайм-аута ожидания ответа, Партнёр должен выдержать паузу минимум 1 минуту. По истечении паузы Партнёр может повторить запрос.
Примечание
При получении статуса 500 более 10 раз необходимо прекратить передачу запроса. После чего передать в службу техподдержки Сервис-провайдера наиболее полную информацию об условиях возникновения данной ошибки для дальнейшего анализа.
Наименование |
Обязат. |
Описание |
Примечание |
|---|---|---|---|
xml version |
да |
Номер версии XML. |
Содержится в прологе XML-документа. |
encoding |
нет |
Кодировка. |
Содержится в прологе XML-документа. |
response |
да |
Корневой элемент, содержит элементы
|
|
code |
да |
Код ответа (значения соответствуют HTTP-кодам для ответов с типом text/plain). |
Подробное описание этих кодов приведено выше. |
text |
нет |
Дополнительная краткая текстовая информация об ответе. |
Может содержать информацию об ошибке. |
payload |
нет |
Информация о сообщении, содержит элемент |
Передаются только в случае успешного
выполнения запроса (при значении
|
id |
нет |
Идентификатор, присвоенный сообщению Сервис-провайдером. Идентификатор представляет собой 64-разрядное целое положительное число. |
Статусы доставки сообщений#
Для получения статусов сообщений необходимо настроить Сервис получения статусов доставки.
Коды ошибок доставки#
Коды ошибок доставки, в зависимости от типа сообщения, приведены в соответствующей вкладке в разделе Описание кодов ошибок (параметр unifiedExtStatus).