База знаний

НТТP протокол для отправки каскадной рассылки

Метод отправки запроса: POST Content-Type: application/json

Структура отправляемого JSON запроса:

{
  "auth": {
    "user": "XXXXX",
    "pass": "PASSWORD"
  },
  "number": "79XXXXXXXXX",
  "stages": [
	перечисление возможных шагов каскада в очередности отправки
  ]
}

Список параметров JSON запроса:

Имя параметра Значение параметра
number Телефонный номер получателя сообщения в международном формате без символа "+".
auth {...} Блок авторизации:
user Зарегистрированное в системе ID пользователя вида XXXXX или ХХХХХ.X
pass Пароль пользователя.
stages [...] Перечисление возможных шагов каскада, которые необходимо задействовать при отправке сообщений на номер абонента.
Шаги можно указывать в любом порядке:
"type": "vk" ВКонтакте и Одноклассники.
"type": "flashCall" Отправка кода звонком.
"type": "voiceCall" Отправка кода голосом.
"type": "voicePassword" Голосовые оповещения.
"type": "telegramBot" Отправка сообщения подписчику Telegram бота.
"type": "telegramPersonal" Отправка сообщения пользователю Telegram, используя номер телефона или имя пользователя.
"type": "sms" SMS.

Параметры шага "ВКонтакте и Одноклассники" (обязательные и необязательные):

Имя параметра Значение параметра
vkTemplateName Имя шаблона, зарегистрированного ранее. Приходит при создании шаблона в письме с подтверждением от ВК ОК. Также можно получить при просмотре списка шаблонов.
vkService Присылается с первым одобренным шаблоном для подключаемой группы на указанный при запросе шаблона e-mail.
vkRoutes Маршрут отправки (vk - значение по умолчанию ВКонтакте, ok - Одноклассники, vk,ok - оба, т.е. доставка производится до первого получения уведомления на физическое устройство. При указании нескольких каналов доставки в итоге использован и тарифицирован будет только один из каналов.)
vkDeliveryPolicy (any, mobile_device_required, verified_phone_number)
vkTtl Время жизни сообщения в секундах (от 60 до 24*60*60).
vkReadTtl Принимает значения от 0 сек. (не использовать каскад по непрочтению) до 24*60*60 сек. Работает по принципу: если сообщение не было прочитано в течении установленного количества секунд - осуществляется следующий шаг, даже если сообщение было доставлено. Денежные средства за отправку сообщения ВК ОК не возвращаются, а в отчете появляется еще одно сообщение, т.е обновления старого объекта не происходит.
vkTemplateData Передача переменных из шаблона {"any_variable_name1": "any_variable_value1", "any_variable_name2": "any_variable_value2"...}
(Если в шаблоне используются переменные, то данный параметр обязателен).
Пример блока "type": "vk" в отправляемом JSON запросе (развернуть)...
{
  "auth": {
    "user": "XXXXX",
    "pass": "PASSWORD"
  },
  "number": "79XXXXXXXXX",
  "stages": [
    ...
    {
      "type": "vk",
      "payload": {
        "vkTemplateName": "string",
        "vkService": "string",
        "vkRoutes": "string",
        "vkDeliveryPolicy": "string",
        "vkTtl": 0,
        "vkReadTtl": 0,
        "vkTemplateData": {
          "any_variable_name": "any_variable_value"
        }
      }
    },
    ...
  ]
}

Параметры шага "Отправка кода звонком" не используются.

Пример блока "type": "flashCall" в отправляемом JSON запросе (развернуть)...
{
  "auth": {
    "user": "XXXXX",
    "pass": "PASSWORD"
  },
  "number": "79XXXXXXXXX",
  "stages": [
    ...
    {
      "type": "flashCall"
    },
    ...
  ]
}

Параметры шага "Отправка кода голосом" не используются.

Пример блока "type": "voiceCall" в отправляемом JSON запросе (развернуть)...
{
  "auth": {
    "user": "XXXXX",
    "pass": "PASSWORD"
  },
  "number": "79XXXXXXXXX",
  "stages": [
    ...
    {
      "type": "voiceCall"
    },
    ...
  ]
}

Параметры шага "Голосовые оповещения" (обязательные):

Имя параметра Значение параметра
text Текст сообщения, которое при голосовом оповещении будет преобразовано в голосовое сообщение.
sender Номер отправителя от которого будет осуществлен голосовой вызов (регистрируется через личный кабинет).
Пример блока "type": "voicePassword" в отправляемом JSON запросе (развернуть)...
{
  "auth": {
    "user": "XXXXX",
    "pass": "PASSWORD"
  },
  "number": "79XXXXXXXXX",
  "stages": [
    ...
    {
      "type": "voicePassword",
      "payload": {
        "text": "string",
        "sender": "78XXXXXXXXX"
      }
    },
    ...
  ]
}

Параметры шага "Отправка сообщения подписчику Telegram бота" (взаимоисключающие обязательные, обязательные и необязательные):

Имя параметра Значение параметра
subscriberId Идентификатор пользователя. Значение параметра "id" из запроса "Получить список подписчиков бота" (ссылка "НТТP протокол для взаимодействия с Telegram" блок "Получить список подписчиков бота") или меню личного кабинета "Чат-боты \ Боты и каналы" ссылка "Управление" у нужного бота, затем значение в колонке "Идентификатор" напротив имени пользователя.
(параметры subscriberId и botId взаимоисключающие, можно использовать только один!)
botId Идентификатор Telegram бота. Значение параметра "id" из запроса "Получить список подключенных ботов" (ссылка "НТТP протокол для взаимодействия с Telegram" блок "Получить список подключенных ботов") или меню личного кабинета "Чат-боты \ Боты и каналы" колонка "Идентификатор" напротив необходимого Telegram бота (подключается непосредственно пользователем - кнопка "Добавить канал" далее иконка "Telegram бот").
(параметры botId и subscriberId взаимоисключающие, можно использовать только один!)
text Текст передаваемого сообщения.
file {...} Блок с прикрепленным к сообщению файлом:
name Имя файла.
mime Медиа тип файла тип/подтип (image/png, text/plain, video/mp4 ...).
baseString Файл преобразованный в строку.
buttons [{...}, {...}, ...] Массив c кнопками. Кнопок может быть несколько:
text Текст, отображаемый на кнопке.
url URL-адрес для перехода по кнопке.
Пример блока "type": "telegramBot" с использованием subscriberId в отправляемом JSON запросе (развернуть)...
{
  "auth": {
    "user": "XXXXX",
    "pass": "PASSWORD"
  },
  "number": "79XXXXXXXXX",
  "stages": [
    ...
    {
      "type": "telegramBot",
      "payload": {
        "subscriberId": "XXXXXXXXXXXXXXXXXXXXXXXX",
        "text": "Текст Вашего сообщения",
        "file": {
          "name": "image.png",
          "mime": "image/png",
          "baseString": "string"
        },
        "buttons": [
          {
            "text": "Текст на кнопке 1",
            "url": "https://ссылка_для_кнопки_1"
          },
          {
           "text": "Текст на кнопке 2",
           "url": "https://ссылка_для_кнопки_2"
          }
        ]
      }
    },
    ...
  ]
}
Пример блока "type": "telegramBot" с использованием botId в отправляемом JSON запросе (развернуть)...
{
  "auth": {
    "user": "XXXXX",
    "pass": "PASSWORD"
  },
  "number": "79XXXXXXXXX",
  "stages": [
    ...
    {
      "type": "telegramBot",
      "payload": {
        "botId": "ZZZZZZZZZZZZZZZZZZZZZZZZ",
        "text": "Текст Вашего сообщения",
        "file": {
          "name": "image.png",
          "mime": "image/png",
          "baseString": "string"
        },
        "buttons": [
          {
            "text": "Текст на кнопке 1",
            "url": "https://ссылка_для_кнопки_1"
          },
          {
           "text": "Текст на кнопке 2",
           "url": "https://ссылка_для_кнопки_2"
          }
        ]
      }
    },
    ...
  ]
}

Параметры шага "Отправка сообщения пользователю Telegram, используя номер телефона или имя пользователя" (обязательные и необязательные):

Имя параметра Значение параметра
connectionId Идентификатор личного Telegram аккаунта. Меню личного кабинета "Чат-боты \ Боты и каналы" колонка "Идентификатор" напротив необходимого личного Telegram аккаунта (подключается непосредственно пользователем для своего мобильного номера - кнопка "Добавить канал" далее иконка "Личный Telegram аккаунт").
username Имя абонента в Telegram. Можно передавать оба параметра username и number или не указывать username. Если передаются оба, то сначала идёт попытка связаться с пользователем по имени абонента, как безопасный вариант, потом уже по номеру телефона. ВАЖНО: Начинать диалог по номеру (т.е. без указания username) можно не раньше чем раз в 3 минуты.
text Текст передаваемого сообщения.
file {...} Блок с прикрепленным к сообщению файлом:
name Имя файла.
mime Медиа тип файла тип/подтип (image/png, text/plain, video/mp4 ...).
baseString Файл преобразованный в строку.
Пример блока "type": "telegramPersonal" в отправляемом JSON запросе (развернуть)...
{
  "auth": {
    "user": "XXXXX",
    "pass": "PASSWORD"
  },
  "number": "79XXXXXXXXX",
  "stages": [
    ...
    {
      "type": "telegramPersonal",
      "payload": {
        "connectionId": "YYYYYYYYYYYYYYYYYYYYYYYY",
        "username": "string",
        "text": "Текст Вашего сообщения",
        "file": {
          "name": "image.png",
          "mime": "image/png",
          "baseString": "string"
        }
      }
    },
    ...
  ]
}

Параметры шага "SMS" (обязательные и необязательные):

Имя параметра Значение параметра
text Текст, передаваемый в SMS.
sender Подпись отправителя, строка длиной до 11 символов (текст) или до 16 символов (номер) в зависимости от типа. Параметр не может быть пустым. Имя отправителя обязательно должно быть одобрено в личном кабинете на платформе.
validity_period Время жизни смс в минутах - максимальное время, в течение которого сообщение должно быть доставлено на телефон. Если в течение этого времени доставка не возможна (например абонент не в зоне действия сети или телефонный аппарат абонента выключен), то сообщение доставлено не будет и получит статус "просрочено". Внимание, данная функция может не работает для некоторых направлений, например для CDMA телефонов. (необязательный параметр, значение по умолчанию: 1440 минут (24 часа)).
Пример блока "type": "sms" в отправляемом JSON запросе (развернуть)...
{
  "auth": {
    "user": "XXXXX",
    "pass": "PASSWORD"
  },
  "number": "79XXXXXXXXX",
  "stages": [
    ...
    {
      "type": "sms",
      "payload": {
        "text": "Текст Вашего сообщения",
        "sender": "SENDERNAME",
        "validity_period": 1440
      }
    }

  ]
}