Відправлення повідомлень на Viber
Щоб почати роботу з нашим сервісом по HTTP API, зробіть наступне:
- Поповніть ваш баланс, якщо він на нулі;
- Створіть новий API-ключ. Ви можете мати до 5 ключів, створюючи і видаляючи їх на ваш розсуд в будь-який час;
- Вкажіть IP (один, кілька, або діапазон), з якого будуть приходити повідомлення.
Адреса HTTP API:
http://api.sms.intel-tele.com/im/send/
Параметри:
Параметр | Опис | Обов’язковий |
username |
Так | |
api_key |
Так | |
to |
номер телефону одержувача, в міжнародному форматі, без «+». Mожно вказати кілька номерів, розділених комою («,»), їм прийдуть однакові повідомлення | Так |
im_sender |
Ім’я відправника. Якщо параметр не вказано, ім’я відправника за замовчуванням буде «IntelTele.com» | Ні |
im_message |
текст повідомлення, utf-8 url-encoded. Довгий текст до 1000 символів | Так |
im_image |
посилання на зображення, utf-8 url-encoded. Розмір картинки не повинен перевищувати 400x400px. Формат: JPG/JPEG/PNG | Ні |
im_button_text |
текст кнопки, utf-8 url-encoded. Використовується в парі з im_button_link | Ні |
im_button_link |
посилання для переходу, при натисканні на im_button_text, utf-8 url-encoded | Ні |
im_ttl |
час життя повідомлення (Кількість секунд). Min – 15. Max – 86400. За замовчуванням – 15 | Ні |
Якщо номер не має облікового запису Viber, ви можете використовувати можливість відправити своє повідомлення на цей номер у вигляді SMS з альтернативним відправником і текстом повідомлення. Для цього вам потрібно:
- sms_source – Ім’я відправника. Може складатися з максимум 11 англійських букв і цифр (дозволяються також символи «._-«), або з максимум 15 цифр. Використовується в парі з sms_message.
- sms_message – обов’язковий, текст повідомлення, utf-8 url-encoded. Довгий текст буде розбитий на кілька смс (максимум 7 частин), ціна повідомлення зросте пропорційно кількості частин.
Приклад запиту:
curl “http://api.sms.intel-tele.com/im/send/?username=foo&api_key=bar123&to=7123456789&im_sender=IntelTele.com&im_message=Test+123&im_image=https%3A%2F%2Fintel-tele.com%2Fimages%2Flogo.png&im_button_text=Click&im_button_link=https%3A%2F%2Fintel-tele.com&im_ttl=120”
Приклад відповіді:
{“reply”: [{“status”: “OK”, “cost”: “0.200000”, “country”: “ru”, “mcc”: “250”, “number”: “7123456789”, “message_id”: “3c32257b-e0b8-4be9-b0e6-e871116b4bdf”}]}
Відповідь сервера (JSON) (Помилки):
Значення полів у запиті:
{'reply':[{'status': 'error: wrong username/api_key'}]} |
помилка авторизації (введений неправильний логін або API Key) |
{'reply':[{'status': 'error: wrong api key'}]} |
API-ключ не підходить |
{'reply':[{'status': 'error: bruteforcing detected'}]} |
було виявлено занадто багато неавторизованих запитів, даний IP буде заблокований на 5 хвилин |
{'reply':[{'status': 'error: ip not allowed'}]} |
Спроба відправки з незареєстрованого IP |
{'reply':[{'status': "error: can't send message"}]} |
Відсутні параметри «message» або «to», відправка неможлива |
{'reply': [{'status': 'error: message is too long'}]} |
Довжина повідомлення перевищує дозволену кількість символів (1000) |
{'reply':[{'status': "error: sender is banned"}]} |
ім’я відправника заблоковано як спам. За роз’ясненнями зверніться до технічної підтримки |
{'reply':[{'status': 'error: wrong sender'}]} |
Параметр «from» ім’я відправника не знайдено |
Значення полів по кожному номеру в запиті::
{"reply": [{"number": "7123456789", "status": "error: number is blacklisted"}]} |
номер телефону одержувача був внесений до чорного списку. За роз’ясненнями зверніться до технічої підтримки |
{"reply": [{'number': '7123456789', 'status': "error: repeat detected"}]} |
виявлено та заблоковано повторне повідомлення на один і той же номер протягом 1 хвилини |
{'reply':[{'number':'7123456789', 'status':"error: can't determine country"}]} |
Неможливо визначити країну |
{'reply':[{'number':'7123456789', 'status':"error: no route to country"}]} |
Дана країна не прописана в таблиці роутінга у вашому особистому аккаунті, слід звернутися до менеджера |
{'reply':[{'number':'7123456789', 'status':"error: low balance", 'cost':'0.04'}]} |
Недостатньо коштів для відправки повідомлення |
Відповідь сервера при успішній відправці повідомлення в чергу:
{"reply": [{"status": "OK", "cost": "0.186440", "country": "ru", "mcc": "250", "number": "7123456789", "message_id": "3c32257b-e0b8-4be9-b0e6-e871116b4bdf"}]} |
Смс була успішно відправлена! |
Значення полів:
status |
Статус відправки, «OK» означає, що повідомлення було коректно оброблено і відправлено в чергу на відправку зовнішньому смс-провайдеру |
cost |
Вартість смс в на даний номер |
number |
Номер, для якого передається статус. Якщо номерів декілька, то для кожного буде свій хеш «{}» всередині списку «reply» |
message_id |
Id повідомлення, присвоєний системою. Передаватиметься в асинхронних викликах обробника статусів |
country |
Дволітерний код країни, див. Список кодів по ISO 3166 |
mcc |
код країни, див. Mobile Country Code |
Асинхронна передача статусу повідомлень
При необхідності, система може здійснювати GET або POST запити на URL, записаний у вашому профілі. У запитах будуть передаватися статуси повідомлень, у міру їх доставки абонентам. Наш запит передає такі параметри:
msgid |
ID, яке наша система присвоїла повідомленням при відправці. Наприклад, f3e76f4e-d4e3-424b-b26b-c0ebc72892cd |
status |
“Cтатус доставки. Може мати значення:
|
datetime |
Час прибуття статусу в систему від зовнішнього смс-центру, у часовому поясі UTC |
Синхронна перевірка статусу повідомлення
URL (GET або POST запит):
http://api.sms.intel-tele.com/im/status/
Параметри:
Параметр | Опис | Обов’язковий |
username | Так | |
api_key | Так | |
timeformat | опціональний, urlencoded. Задає форматування для дати. [datetime, date, time]. Якщо параметр не заданий, дата не передається у відповіді сервера. Наприклад, timeformat = datetime видасть дату у вигляді 2017-01-23 12:34:56 |
Ні |
timezone | опціональний, urlencoded. Задає часовий пояс дати, див. список часових поясів. Якщо параметр не заданий, то буде використаний часовий пояс з вашого профілю. | Ні |
Приклад запиту:
curl “http://api.sms.intel-tele.com/im/status/?username=foo&api_key=bar&requests=3c32257b-e0b8-4be9-b0e6-e871116b4bdf&timezone=UTC&timeformat=datetime”
Приклад відповіді:
{“3c32257b-e0b8-4be9-b0e6-e871116b4bdf”: {“date”: “17-02-2013 12:08:29”, “status”: “rejectd”, “time_zone”: “UTC”}}
Перевірка балансу
URL (GET або POST запит):
http://api.sms.intel-tele.com/balance/
Параметри:
Параметр | Опис | Обов’язковий |
username |
Так | |
api_key |
Так |
Приклад запиту:
curl “http://api.sms.intel-tele.com/balance/?username=foo&api_key=bar”
Приклад відповіді:
{“balance”: “-0.42”}
Перевірка кредиту
URL (GET або POST запит):
http://api.sms.intel-tele.com/credit/
Параметри:
Параметр | Опис | Обов’язковий |
username |
Так | |
api_key |
Так |
Приклад запиту:
curl “http://api.sms.intel-tele.com/credit/?username=foo&api_key=bar”
Приклад відповіді:
{“credit”: “1.23”}
Запит Тарифів
URL (GET або POST запит):
http://api.sms.intel-tele.com/rates/
Параметри:
Параметр | Опис | Обов’язковий |
username |
Так | |
api_key |
Так |
Приклад запиту:
curl “http://api.sms.intel-tele.com/rates/?username=foo&api_key=bar”
Відповідь сервера (JSON):
Значення полів у запиті:
Поле | Опис |
{'message': 'Invalid auth', 'error': true} |
Помилка авторизації (введений неправильний логін або API Key) |
{'status': 'bruteforcing detected', 'error': true} |
Було виявлено занадто багато неавторизованих запитів, даний IP буде заблокований на 5 хвилин |
{'status': 'ip not allowed', 'error': true} |
Спроба відправки з незареєстрованого IP |
Відповідь сервера при успішному запиті:
{“user”: {“ru”: {“01”: [0.123456, 0], “”: [0.234567, 0]}}}
Значення полів:
Поле | Опис |
user |
|
ru |
Дволітерний ISO код країни |
"01": [ 0.123456, 0 ], |
MNC оператора: 1-й параметр: вартість за 1 смс 2-й параметр: 0 – плата здіймається за всі смс, 1 – плата здіймається тільки за доставлені * якщо ключ порожній – всі оператори |