Отправка сообщений на 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 — Имя отправителя. Mожет состоять из максимум 11 английских букв и цифр (допускаются также символы «._- «), или из максимум 15 цифр. Используется в паре с sms_message.
- sms_message — обязательный, текст сообщения, utf-8 url-encoded. Длинный текст будет разбит на несколько смс (максимум 4 части), цена сообщения возрастёт пропорционально количеству частей.
Пример запроса:
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 |
статус доставки. Может иметь значения:
|
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 — плата снимается только за доставленные * если ключ пустой — все операторы |