Запросы
2. Запросы
2.1. Отправить сообщения
URL: http://stream.ibatelecom.ru:8083/broker-api/send
Запрос используется для отправки сообщений по различным каналам.
2.1.1 Тело запроса
Приведенный JSON демонстрирует все доступные в запросе параметры. Примеры запросов для разных задач доступны в разделе 3.
{
"template-id": "",
"priority": "",
"blacklist-id": "",
"external-id1": "",
"external-id2": "",
"external-id3": "",
"timing": {
"localtime": "",
"start-datetime": "",
"end-datetime": "",
"allowed-starttime": "",
"allowed-endtime": "",
"send-evenly": "",
"allowed-days": ""
},
"viber": {
"originator": "viberSender",
"ttl": "300",
"content": {
"text" : "Test text",
"image-url": "test.domain/picture.jpg",
"button-name": "button",
"button-url": "test.domain"
}
},
"sms": {
"originator": "smsSender",
"ttl": "300",
"content": {
"text": "Test text"
}
},
"push": {
"application": "pushApp",
"ttl": "300",
"content": {
"title": "",
"text": "Test text",
"extra-content": "",
"additional-data" : {}
}
},
"call": {
"originator": "79009009090",
"ttl": "300",
"content": {
"text": "Test text",
"menu": "Test",
"file": ""
},
"retry-attempts": "",
"retry-timeout": ""
},
"ussd": {
"originator": "150",
"ttl": "300",
"content": {
"text": "Test text",
"menu": "Test"
}
},
"email": {
"originator": "emailSender@example.com",
"ttl": "300",
"content": {
"subject": "",
"text": "Test text",
"attached-files": [{"name.txt": "iwuanaUajwm"}, {"name.pdf": "iwuanaUajwm"}]
}
},
"messages":
[
{
"recipient": "79990009900",
"email-address": "test@example.com",
"message-id": "2017-11-07-18-29-30",
"template-id": "",
"priority": "",
"variables": [],
"timing": {
"localtime": "",
"start-datetime": "",
"end-datetime": "",
"allowed-starttime": "",
"allowed-endtime": "",
"allowed-days": ""
},
"viber": {
"originator": "viberSender",
"ttl": "300",
"content": {
"text": "Test text",
"image-url": "test.domain/picture.jpg",
"button-name": "button",
"button-url": "test.domain"
}
},
"sms": {
"originator": "smsSender",
"ttl": "300",
"content": {
"text": "Test text"
}
},
"push": {
"application": "pushApp",
"ttl": "300",
"content": {
"title": "",
"text": "Test text",
"extra-content": "",
"additional-data" : {}
}
},
"call": {
"originator": "79009009090",
"ttl": "300",
"content": {
"text": "Test text",
"menu": "Test",
"file": ""
},
"retry-attempts": "",
"retry-timeout": ""
},
"ussd": {
"originator": "150",
"ttl": "300",
"content": {
"text": "Test text",
"menu": "Test"
}
}
},
"email": {
"originator": "emailSender@example.com",
"ttl": "300",
"content": {
"subject": "",
"text": "Test text",
"attached-files": [],
}
}
]
}
2.1.2 Параметры запроса
2.1.2.1 Общие параметры
Название | Тип | Обязательность | Описание | |
---|---|---|---|---|
1 | template-id | string | Нет | Идентификатор шаблона для отправки сообщения |
2 | priority | string | Нет | Приоритет (указывается в цифровой форме): |
3 | blacklist-id | string | Нет | Идентификатор черного списка |
4 | external-id1 | string | Нет | Дополнительный параметр, как правило не учитывается |
5 | external-id2 | string | Нет | Дополнительный параметр, как правило не учитывается |
6 | external-id3 | string | Нет | Дополнительный параметр, как правило не учитывается |
7 | timing | object | Нет | Временные настройки |
8 | viber | object | Нет | Параметры для отправки по каналу viber |
9 | sms | object | Нет | Параметры для отправки по каналу sms |
10 | push | object | Нет | Параметры для отправки по каналу push |
11 | call | object | Нет | Параметры для отправки по каналу call |
12 | object | Нет | Параметры для отправки по каналу email | |
13 | ussd | object | Нет | Параметры для отправки по каналу ussd |
14 | messages | array | Да | Параметры получателей |
2.1.2.2 Параметры объекта timing
Название | Тип | Обязательность | Описание | |
---|---|---|---|---|
1 | localtime | number | Нет | Отправлять по местному времени |
2 | start-datetime | datetime | Нет | Дата начала отправки. Формат YYYY-MM-DD hh:mm. Если не указана, то сообщения отправляются сразу же. |
3 | end-datetime | datetime | Нет | Дата завершения отправки. Формат YYYY-MM-DD hh:mm. Если не указана, то система не стремится отправиться все сообщения до определенного времени. |
4 | allowed-starttime | datetime | Нет | Время, с которого разрешена отправка. Формат hh:mm |
5 | allowed-endtime | datetime | Нет | Время, до которого разрешена отправка. Формат hh:mm |
6 | send-evenly | number | Нет | Равномерно распределять отправку |
7 | allowed-days | string | Нет | Разрешенные для отправки дни недели. Передаются как строка MON, TUE, WED, THU, FRI, SAT, SUN. Если не переданы, то отправка разрешена во все дни. |
2.1.2.3 Параметры объектов каналов (viber, sms, push, call, email, ussd)
Название | Тип | Обязательность | Описание | |
---|---|---|---|---|
1 | originator | string | Нет | Адрес отправителя |
2 | application | string | Нет | Название приложения, куда будет отправлено уведомление Используется только для канала Push |
3 | ttl | Number | Нет | Время жизни сообщения в секундах. По истечении данного времени сообщению присваивается статус expired и производится отправка сообщения по альтернативному каналу, если он задан |
4 | content | object | Нет | Параметры для отправки контента |
2.1.2.4 Параметры объекта content для viber
Название | Тип | Обязательность | Описание | |
---|---|---|---|---|
1 | text | string | Нет | Текст сообщения, максимальная длина 1000 символов. |
2 | image-url | string | Нет | Ссылка на картинку |
3 | button-name | string | Нет | Название кнопки |
4 | button-url | string | Нет | Ссылка для перехода по кнопке |
2.1.2.5 Параметры объекта content для sms
Название | Тип | Обязательность | Описание | |
---|---|---|---|---|
1 | text | string | Нет | Текст сообщения, максимальная длина 70 символов кириллицей, 160 символов латиницей. Если длина сообщения больше указанных, то сообщение разбивается (при формировании user-сообщения) на несколько частей, каждая часть тарифицируется отдельно. |
2.1.2.6 Параметры объекта content для push
Название | Тип | Обязательность | Описание | |
---|---|---|---|---|
1 | title | string | Нет | Заголовок сообщения. |
2 | text | string | Нет | Текст сообщения, максимальная длина 1000 символов. |
3 | extra-content | string | Нет | Дополнительный контент (строковый). |
4 | additional-data | object | Нет | Объект для передачи пользовательских параметров в виде пар ключ:значение, разделенных запятой. Значение должно иметь строковый тип. |
2.1.2.7 Параметры объекта content для call
Название | Тип | Обязательность | Описание | |
---|---|---|---|---|
1 | text | string | Нет | Текст сообщения для синтеза TTS, до 2000 байт (1000 символов). Используется один из трех параметров: text, file, ivrmenu. Запрос с с более чем одним параметром считается некорректным. |
2 | file | string | Нет | Название аудиофайла. Используется один из трех параметров: text, file, ivrmenu. Запрос с с более чем одним параметром считается некорректным. |
3 | menu | string | Нет | Название IVR-меню. Используется один из трех параметров: text, file, ivrmenu. Запрос с с более чем одним параметром считается некорректным. |
4 | retry-attempts | Number | Нет | Количество попыток повторного звонка. Допустимы только неотрицательные числа. |
5 | retry-timeout | Number | Нет | Интервал, через который будет произведен повторный звонок, в миллисекундах |
2.1.2.8 Параметры объекта content для email
Название | Тип | Обязательность | Описание | |
---|---|---|---|---|
1 | subject | string | Нет | Тема письма. |
2 | text | string | Нет | Текст письма. |
3 | attached-files | array | Нет | Ассоциативный массив ссылок на прикрепленные файлы. Формат: Имя файла: файл. Файл может быть передан следующими способами: |
2.1.2.9 Параметры объекта content для ussd
Название | Тип | Обязательность | Описание | |
---|---|---|---|---|
1 | text | string | Нет | Текст сообщения. |
2 | menu | string | Нет | Название USSD-меню |
2.1.2.10 Параметры элемента массива messages
Название | Тип | Обязательность | Описание | |
---|---|---|---|---|
1 | recipient | string | Нет | Адрес получателя (как правило MSISDN). Обязателен, если отправка идет по транспорту отличному Email, или по шаблону отличному от Email. |
2 | email-address | string | Нет | Email-адрес получателя. Обязателен, если отправка идет по транспорту Email, или по шаблону Email. |
3 | message-id | string | Да | Уникальный идентификатор сообщения для отправителя сообщения. Максимальная длина 30 символов. |
4 | template-id | string | Нет | Идентификатор шаблона для отправки сообщения |
5 | priority | string | Нет | Приоритет: Если не указан, то используется normal |
6 | timing | object | Нет | Временные настройки |
7 | variables | array | Нет | Объект параметров и их значений для подстановки в сообщение (каждый элемент представлен как запись ПАРАМЕТР:ЗНАЧЕНИЕ, например, {"PARAM1":"VALUE1","PARAM2":"VALUE2"}). |
8 | viber | object | Нет | Параметры для отправки по каналу viber |
9 | sms | object | Нет | Параметры для отправки по каналу sms |
10 | push | object | Нет | Параметры для отправки по каналу push |
11 | call | object | Нет | Параметры для отправки по каналу call |
12 | object | Нет | Параметры для отправки по каналу email | |
13 | ussd | object | Нет | Параметры для отправки по каналу ussd |
Параметры объектов timing и объектов каналов аналогичны параметрам для общей части запроса.
2.1.3 Параметры ответа
При успешном запросе возвращается строка "OK".
2.2 Получить статусы сообщений
URL: http://stream.ibatelecom.ru:8083/broker-api/getStatus
Запрос используется для запроса статусов отправленных сообщений. Статус сообщения доступен не сразу, а только спустя несколько минут после отправки.
На запрос возвращаются только финальные статусы (с учетом возможности переотправки сообщения по другому каналу) или все статусы в зависимости от настроек аккаунта.
2.2.1 Тело запроса
{
"message-id": []
}
2.2.2 Параметры запроса
Название | Тип | Обязательность | Описание | |
---|---|---|---|---|
1 | message-id | Array | Да | Массив идентификаторов сообщений |
2.2.3 Тело ответа
{
"messages":
[
{
"message-id": "",
"channel": "",
"status": "",
"status-date": "",
"description": ""
}
]
}
2.2.4 Параметры ответа
Название | Тип | Обязательность | Описание | |
---|---|---|---|---|
1 | message-id | string | Да | Идентификатор сообщения |
2 | channel | string | Нет | Канал, по-которому было доставлено сообщение |
3 | status | string | Нет | Статус сообщения: |
4 | status-date | datetime | Нет | Дата и время получения статуса |
5 | description | string | Нет | Описание причины недоставки сообщения, ошибки, либо "Message not found" |
2.3 Автоматическое получение статусов сообщений
На указанный в настройках Системы URL автоматически отправляются статусы отправленных сообщений. Запрос выполняется Системой в сторону системы-отправителя. Выполняется буферизация статусов в 1 секунду.
Системе-отправителю передаются только финальные статусы (с учетом возможности переотправки сообщения по другому каналу) или все статусы в зависимости от настроек аккаунта.
2.3.1 Тело запроса
{
"messages":
[
{
"message-id": "",
"channel": "",
"status": "",
"status-date": "",
"description": ""
}
]
}
2.3.2 Параметры запроса
Название | Тип | Обязательность | Описание | |
---|---|---|---|---|
1 | message-id | string | Да | Идентификатор сообщения |
2 | channel | string | Нет | Канал, по-которому было доставлено сообщение |
3 | status | string | Нет | Статус сообщения: |
4 | status-date | datetime | Нет | Дата и время получения статуса |
5 | description | string | Нет | Описание причины недоставки сообщения, ошибки, либо "Информация отсутствует" |