Viber API
Мы открываем Вам дополнительные возможности с помощью подключения к нашему сервису по Viber API. Вы имеете возможность интегрироваться с нашей платформой и полностью автоматизировать процессы viber рассылки. Для этого в личном кабинете необходимо запросить активацию API.
Отправка текстового viber сообщения
Пример запроса для отправки текстового viber-сообщения 2-м респондентам:
<?xml version="1.0" encoding="UTF-8"?> <request> <auth> <login>380671234567</login> <password>p1a2s3s4</password> </auth> <viber_text> <from>eXpert</from> <text>Текстовое сообщение</text> <life_time>1440</life_time> <recipient>380677654321</recipient> <recipient>380677654322</recipient> </viber_text> </request>
Здесь:
from – согласованное имя отправителя (к имени привязан логотип отправителя).
text – текстовое сообщение длиной до 1000 символов (может содержать ссылки).
life_time – время жизни сообщения после отправки в минутах (от 5 до 1440).
recipient – телефонный номер получателя в международном формате.
Если сообщение было поставлено в очередь успешно будет дан следующий ответ, с указанием id сообщений:
<?xml version="1.0" encoding="UTF-8"?> <response> <name>ViberComplete</name> <description>2 messages put into queue</description> <viber_id>623454</viber_id> <viber_id>623455</viber_id> </response>
Со счета снимается стоимость отправки сообщений, которые поставлены в очередь отправки (бронирование до получения окончательного статуса).
Если были ошибки:
<?xml version="1.0" encoding="UTF-8"?> <response> <name>Error</name> <description>Код ошибки</description> </response>
Коды ошибок:
- NO_DATA – ошибка данных (не передан XML).
- WRONG_DATA_FORMAT – ошибка формата переданного XML.
- REQUEST_FORMAT – неправильный тип запроса.
- AUTH_DATA – ошибка авторизации (несуществующий пользователь, неправильная пара логин-пароль).
- API_DISABLED – для учетной записи пользователя запрещена работа с API.
- INCORRECT_RECIPIENT - некорректный номер получателя.
- INVALID_FROM – несогласованное альфа-имя отправителя.
- INCORRECT_FROM - в альфа-имени отправителя содержит недопустимые символы (допускаются латинские символы или числа, точка, тире, подчеркивание), не задано или длина более 11 символов.
- MESSAGE_TOO_LONG – длина сообщения больше 1000 символов.
- NO_MESSAGE – пустое сообщение.
- MAX_MESSAGES_COUNT – превышено максимальное количество респондентов в одном запросе (50).
- INCORRECT_RECIPIENT – некорректный номер телефона в списке получателей.
- NOT_ENOUGH_MONEY – недостаточно средств для отправки сообщения респондентам, указанным в запросе.
- INCORRECT_LIFETIME – срок жизни сообщения не попадает в диапазон от 5 до 1440 минут.
- UNKNOWN_ERROR – ошибка БД или другая ошибка.
Отправка viber изображения
Пример запроса для отправки viber изображения 2-м респондентам:
<?xml version="1.0" encoding="UTF-8"?> <request> <auth> <login>380671234567</login> <password>p1a2s3s4</password> </auth> <viber_image> <from>eXpert</from> <image>https://i.ytimg.com/maxresdefault.jpg</image> <life_time>1440</life_time> <recipient>380677654321</recipient> <recipient>380677654322</recipient> </viber_image> </request>
Здесь image – ссылка на изображение (должна содержать .jpg, .jpeg, .png или .gif в качестве расширения), максимальная длина ссылки – 1000 символов.
Если сообщение было поставлено в очередь успешно, будет дан следующий ответ, с указанием id сообщений:
<?xml version="1.0" encoding="UTF-8"?> <response> <name>ViberComplete</name> <description>2 messages put into queue</description> <viber_id>210954</viber_id> <viber_id>210955</viber_id> </response>
Если были ошибки:
<?xml version="1.0" encoding="UTF-8"?> <response> <name>Error</name> <description>Код ошибки</description> </response>
Коды ошибок
- Коды из раздела «отправка текстового viber сообщения».
- INCORRECT_IMAGE – некорректная ссылка на изображение (ссылка на изображение должна содержать .jpg, .jpeg, .png или .gif в качестве расширения, а ее длина не превышать 1000 символов).
Отправка viber сообщения с кнопкой перехода
Пример запроса для отправки viber изображения 2-м респондентам:
<?xml version="1.0" encoding="UTF-8"?> <request> <auth> <login>380671234567</login> <password>p1a2s3s4</password> </auth> <viber_textbutton> <from>eXpert</from> <text>Текстовое сообщение</text> <button>Перейти на сайт</button> <url>https://www.ukr.net</url> <life_time>1440</life_time> <recipient>380677654321</recipient> <recipient>380677654322</recipient> </viber_textbutton> </request>
Здесь:
button – текст кнопки (от 1 до 19 символов);
url – ссылка, длиной до 1000 символов, для перехода при нажатии на кнопку.
Если сообщение было поставлено в очередь успешно, будет дан следующий ответ, с указанием id сообщений:
<?xml version="1.0" encoding="UTF-8"?> <response> <name>ViberComplete</name> <description>2 messages put into queue</description> <viber_id>210984</viber_id> <viber_id>210985</viber_id> </response>
Если были ошибки:
<?xml version="1.0" encoding="UTF-8"?> <response> <name>Error</name> <description>Код ошибки</description> </response>
Коды ошибок
- Коды из раздела «отправка текстового viber сообщения».
- INCORRECT_BUTTON – длина текста кнопки вышла за диапазон от 1 до 19 символов.
- INCORRECT_URL – некорректная ссылка на ресурс или длина ссылки превышает 1000 символов.
Отправка viber сообщения с изображением и кнопкой перехода
Пример запроса для отправки viber изображения 2-м респондентам:
<?xml version="1.0" encoding="UTF-8"?> <request> <auth> <login>380671234567</login> <password>p1a2s3s4</password> </auth> <viber_textimagebutton> <from>eXpert</from> <text>Текстовое сообщение</text> <image>https://i.ytimg.com/vi/maxresdefault.jpg</image> <button>Перейти на сайт</button> <url>https://www.ukr.net</url> <life_time>1440</life_time> <recipient>380677654321</recipient> <recipient>380677654322</recipient> </viber_textimagebutton> </request>
Если сообщение было поставлено в очередь успешно, будет дан следующий ответ, с указанием id сообщений:
<?xml version="1.0" encoding="UTF-8"?> <response> <name>ViberComplete</name> <description>2 messages put into queue</description> <viber_id>25465344</viber_id> <viber_id>25465345</viber_id> </response>
Если были ошибки:
<?xml version="1.0" encoding="UTF-8"?> <response> <name>Error</name> <description>Код ошибки</description> </response>
Коды ошибок
- Коды из разделов: «отправка текстового viber сообщения», «отправка viber изображения» и «отправка viber сообщения с кнопкой перехода».
Получение статуса отправленного viber сообщения
Пример запроса на получение статуса по id сообщения:
<?xml version="1.0" encoding="UTF-8"?> <request> <auth> <login>380671234567</login> <password>p1a2s3s4</password> </auth> <viber_id>25465345</viber_id> </request>
Если сообщение найдено будет дан ответ с указанием статуса:
<?xml version="1.0" encoding="UTF-8"?> <response> <name>Status</name> <description>Статус сообщения</description> </response>
Статус сообщения
- QUEUE – сообщение в очереди на отправку.
- SENT – сообщение отправлено.
- READ – сообщение прочитано после получения.
- ERROR – критическая ошибка отправки сообщения.
- TIMEOUT1 – время жизни сообщения истекло до отправки (сообщение не получено).
- TIMEOUT2 – время жизни сообщения истекло после отправки (сообщение получено).
- DELIVERED – сообщение доставлено.
- NOT_DELIVERED – сообщение не доставлено.
Если были ошибки:
<?xml version="1.0" encoding="UTF-8"?> <response> <name>Error</name> <description>Код ошибки</description> </response>
Коды ошибок:
- Коды из раздела «отправка сообщений».
- MESSAGE_NOT_EXIST – сообщение с заданным id не существует.
Порядок изменения статусов viber сообщения
начальный статус | новый статус | когда осуществляется переход к новому статусу | движение средств |
---|---|---|---|
QUEUE | SENT | после отправки сообщения | резерв |
ERROR | после ошибки валидации данных сообщения или невозможности отправки сообщения | возврат | |
TIMEOUT1 | время жизни сообщения истекло до отправки | возврат | |
SENT | ERROR | после отправки сообщения | возврат |
TIMEOUT2 | время жизни истекло после отправки (сообщение не доставлено) | оплата | |
DELIVERED | при запросе статуса после отправки | оплата | |
NOT_DELIVERED | при запросе статуса после отправки | оплата | |
DELIVERED | READ | после повторного запроса статуса сообщения (повторный запрос осуществляется после окончания времени жизни сообщения) | – |
READ | (окончательный) | – | |
ERROR | (окончательный) | – | |
TIMEOUT1 | (окончательный) | – | |
TIMEOUT2 | (окончательный) | – | |
NOT_DELIVERED | (окончательный) |
Первый раз статус сообщения должен проверяеться через 10 минут, повторно раз в час. При получении окончательного статуса нет необходимости в повторном запросе статуса сообщения.
Получение списка утвержденных viber альфа-имен пользователя
Пример запроса для получения списка утвержденных viber альфа-имен пользователя:
<?xml version="1.0" encoding="UTF-8"?> <request> <auth> <login>380671234567</login> <password>p1a2s3s4</password> </auth> <get_viber_alpha_names /> </request>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <response> <name>Get_viber_alpha_names</name> <description>4 - количество доступных альфа-имен</description> <alpha>Альфа-имя1</alpha> <alpha>Альфа-имя2</alpha> <alpha>Альфа-имя3</alpha> <alpha>Альфа-имя4</alpha> </response>
Если были ошибки:
<?xml version="1.0" encoding="UTF-8"?> <response> <name>Error</name> <description>Код ошибки</description> </response>
Коды ошибок
- Коды из раздела «отправка смс сообщений».
Получение баланса пользователя
Пример запроса на получение баланса:
<?xml version="1.0" encoding="UTF-8"?> <request> <auth> <login>380671234567</login> <password>p1a2s3s4</password> </auth> <balance /> </request>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <response> <name>Balance</name> <description>Количество средств на счету пользователя</description> <currency>Валюта счета пользователя</currency> </response>Если были ошибки:
<?xml version="1.0" encoding="UTF-8"?> <response> <name>Error</name> <description>Код ошибки</description> </response>Коды ошибок:
- NO_DATA (ошибка данных: не передан XML)
- WRONG_DATA_FORMAT (ошибка формата переданного XML)
- REQUEST_FORMAT (неправильный тип запроса)
- AUTH_DATA (ошибка авторизации: несуществующий пользователь, неправильная пара логин-пароль)
- API_DISABLED (для учетной записи пользователя запрещена работа с API)
- UNKNOWN_ERROR (неизвестная ошибка)
Пример кода для отправки запроса баланса и получения ответа в формате XML на языке PHP
<?php
$sXML =
'<?xml version="1.0" encoding="UTF-8"?>
<request>
<auth>
<login>79261234567</login>
<password>p1a2s3s4</password>
</auth>
<balance />
</request>';
$rCurl = curl_init();
curl_setopt_array($rCurl, array(
CURLOPT_URL => 'https://viber.letsads.com',
CURLOPT_HEADER => 0,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $sXML,
CURLOPT_RETURNTRANSFER => 1,
);
$sAnswer = curl_exec($rCurl);
curl_close($rCurl);