Viber#
Поддерживается отправка следующих типов Viber-сообщений:
только текст;
только изображение;
текст + кнопка для перехода по ссылке;
текст + изображение + кнопка для перехода по ссылке.
viberTtl.Запрос на отправку сообщений#
Метод: GET.
Примеры запросов#
GET-запрос с сообщением на латинице «test» в простом текстовом формате.
http://partner.ru/login?clientId=79161234567&message=test&pass=123&serviceId=login
GET-запрос с текстом сообщения на кириллице «тест» в URL-формате.
http://partner.ru/login?clientId=79161234567&message=%D1%82%D0%B5%D1%81%D1%82&pass=123&serviceId=login
Параметры запросов#
Параметр |
Обязат. |
Тип |
Описание |
|---|---|---|---|
clientId |
да |
string |
Номер телефона абонента, до 25 символов. Подробнее
Примеры: |
message |
нет |
string |
Текст сообщения в кодировке UTF-8. ПодробнееМаксимальная длина: 1000 символов. |
serviceId |
да |
string |
Идентификатор сервиса (логин), от имени которого происходит отправка сообщения. Подробнее
Логин |
pass |
да |
string |
Пароль для авторизации в сервисе. ПодробнееПароль заводится Сервис-провайдером при подключении сервиса и сообщается Партнёру |
ptag |
нет |
string |
Идентификатор сообщения в системе Партнёра. ПодробнееМожет содержать от одного до 50 символов. Допустимые символы: 0...9a...zA...Z- Это может быть любой идентификатор в системе Партнёра. Примечание Например, уникальный идентификатор сообщения или идентификатор подразделения,
инициирующего запрос на отправку. В отличие от параметра Сервис-провайдер опционально возвращает Партнёру данный идентификатор в рамках запроса на получение статуса доставки сообщения (этот функционал подробно описан в разделе Сервис получения статусов доставки). |
imageUrl |
нет |
string |
Ссылка на изображение, пересылаемое абоненту. ПодробнееСсылка должна начинаться с «http://» или «https://». |
buttonText |
нет |
string |
Текст кнопки. Подробнее
Если передан Максимальная длина: 30 символов. |
buttonLink |
нет |
string |
Ссылка для перехода после нажатия на кнопку. ПодробнееСсылка должна начинаться с «http://», «https://», «viber://», «tel:», «mailto:». Максимальная длина ссылки: 2048 символов.
Если передан |
viberTtl |
нет |
integer |
Время жизни сообщения. ПодробнееДопустимый диапазон, сек: от 30 до 86400. Рекомендуемое минимальное значение: 60. В течение указанного времени Viber будет пытаться доставить сообщение абоненту. Значения, выходящие за пределы минимального или максимального, будут к ним округлены. Если параметр не передан, будет использовано значение по умолчанию (согласованное при запуске сервиса). Если время жизни сообщения истекло, ему присваивается статус не доставлено. |
sending_time |
нет |
string |
Локальное время отправки сообщения абоненту. Подробнее
Задается в формате Предупреждение Если параметр указан, то его значение не может быть пустым. Примечание Например, при значении параметра Часовой пояс абонента определяется не по фактическому местоположению абонента.
Если Партнёр не передает параметр
Если Партнёр передает в параметре |
time_zone |
нет |
string |
Часовой пояс абонента. Подробнее
Задается в формате Если Партнёр передает в этом параметре часовой пояс, то сообщение будет отправлено абоненту по местному времени этого часового пояса, иначе часовой пояс абонента определяется по номеру телефона абонента. Примечание Абонент с хабаровским номером находится в Москве. Возможны следующие варианты отправки:
Для нулевой зоны обязательно указание знака, неважно «+» или «-».
Знак «+» при кодировании URL преобразуется в «%2B».
Например, часовой пояс +04:00 передается так |
source |
нет |
string |
Имя отправителя. ПодробнееСообщение абоненту будет отправлено с сервисного имени, указанного в данном параметре. Данный параметр не является обязательным. Если параметр отсутствует в запросе, то сообщение будет отправлено абоненту с имени по умолчанию (настройка на стороне Сервис-провайдера). Важно Использование данного параметра недоступно для Партнёра по умолчанию. Функционал может быть включен после согласования с Сервис-провайдером. В этом случае для Партнёра настраивается список разрешенных имен отправителей, либо включается функционал динамической подписи. |
output |
нет |
string |
Формат ответа на запрос. Подробнее
Если Если параметр не задан или имеет другое значение, будет применён формат простой текст (text/plain), см. Ответ на запрос. |
partnerMsgId |
нет |
string |
Уникальный идентификатор сообщения в системе Партнёра. ПодробнееДопустимая длина: от 1 до 50 символов.
Данный параметр используется для контроля повторных отправок и дублирования.
Партнёр может отправить запрос на отправку сообщения с одним и тем же
При этом:
Сервис-провайдер опционально возвращает Партнёру данный идентификатор в рамках запроса на получение статуса доставки сообщения (см. Сервис получения статусов доставки). Использование данного параметра недоступно по умолчанию. Подключение данного функционала нужно согласовать со своим курирующим менеджером. |
shortenLinks |
нет |
boolean |
Параметр указывает, требуется ли сокращать ссылки в тексте сообщения. ПодробнееВажно Используется только для одиночных сообщений.
В случае каскадной доотправки необходимо использовать параметр
Важно Использование данного параметра недоступно по умолчанию. Подключение данного функционала необходимо согласовать со своим курирующим менеджером. Подробнее: см. Сервис сокращения ссылок. |
Примечание
Возможные комбинации параметров в запросе:
message;
imageUrl;
message + buttonText + buttonLink;
message + imageUrl + buttonText + buttonLink.
Ответ на запрос#
Примечание
Сервис-провайдер отправляет сообщения абонентам только при успешной обработке запроса.
Ответ при успешной отправке запроса#
На успешный запрос Сервис-провайдер возвращает Партнёру:
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— внутренняя ошибка сервера, технические проблемы на стороне Сервис-провайдера.
Примеры ответов#
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).
Viber-сессия#
Примечание
Функционал Viber-сессий недоступен по умолчанию. Для его подключения следует обратиться к своему курирующему менеджеру.
Подключение функционала сессий#
Важно
Для бизнес-аккаунтов, поддерживающих функционал Viber-сессий, доступны сообщения с типом «только текст» или «только изображение» (значение параметра InstantContent.type должно быть либо «TEXT», либо «IMAGE_URL»).
Особенности работы сессий#
Начало сессии:
сессия может быть инициирована только подписчиком;
сессия начинается, когда подписчик отправляет первое сообщение Партнеру;
сессия не может быть инициирована изображением;
если в рамках переписки присутствует только один отправитель (неважно — подписчик или Партнер), то это не считается сессией, сообщения будут тарифицированы обычным образом.
Лимиты сессии:
продолжительность сессии по умолчанию 24 часа;
Партнер может отправить до 60 сообщений (после превышения данного лимита автоматически стартует новая сессия);
Партнер может отправлять до 10 сообщений без ответа подписчика (после превышения данного лимита сессия автоматически закрывается);
Партнер может отправлять только сообщения с типом «текст» или «изображение».
Завершение сессии:
по прошествии 24 часов;
по достижении лимита в 60 сообщений (автоматически стартует новая сессия);
по достижении лимита в 10 безответных сообщений от Партнера.