Менеджерам обучения
API и интеграции
Webhooks: подключение и использование

Webhooks: подключение и использование

Webhooks — уведомление сторонних приложений посредством отправки уведомлений о событиях, произошедших на платформе обучение.

Список возможных типов вебхуков:

  • CourseStat - статистика по курсу;
  • SectionStat - статистика по разделу курса;
  • QuizStat - статистика по тесту в курсе
  • TaskStat - статистика по заданию в курсе
  • ScormStat - статистика по SCORM заданию в курсе
  • MaterialStat - статистика по материалу в курсе

Подписываться на все события необязательно, можно на несколько или одно. URL можно указать для каждой сущности отдельно.

Для подключения нужно обратиться в техническую поддержку, написав на адрес эл. почты help@teachbase.ru письмо с просьбой подключения Webhook в свободной форме, при этом укажите:

  • Какой тип веб-хуков подключить: CourseStat, SectionStat и т.д;
  • Куда подключить веб-хук: id курса, id теста и т.д. Либо, можем подключить ко всем объектам сразу - уточните, если требуется;
  • Какой URL указать для каждого из типов веб-хуков, которые планируете подключить.

Webhook отправляет на стороннее приложение POST переменную, которая содержит массив вида {“entity”:{“action”:{массив полей сущности}}}. После создания новой сущности будет приходить POST запрос на указанный эндопнт(ы) вида:

{
    "type": "course_stat",
    "event": "created",
    "data": {
        // Набор аттрибутов аналогичный набору, <a href="https://go.teachbase.ru/api-docs/index.html#/course\_stat/get\_course\_stats\_\_course\_stat\_id\_" target="\_blank" rel="noopener">передаваемому в Endpoint API</a>
        // для этой сущности
    }
}

После обновления сущности будет приходить POST запрос на указанный эндопнт(ы) вида:

{
    "type": "section_stat",
    "event": "updated",
    "data": {
        // Набор аттрибутов аналогичный набору, <a href="https://go.teachbase.ru/api-docs/index.html#/section%20stats/get\_courses\_\_course\_id\_\_section\_stats\_\_section\_stat\_id\_" target="\_blank" rel="noopener">передаваемому в Endpoint API</a>
        // для этой сущности
    }
}

В качестве ответа на запрос мы со своей стороны ожидаем получить 200 статус вне зависимости от возможности обработать отправляемые данные. В случае если мы получим 400-е, 500-е статусы мы сделаем повторную отправку (до 5 раз в течение 2-х минут) на случай перезагрузки оборудования и иных временных причин. Можно сказать, что статус ответа служит для подтверждения работоспособности канала передачи и правильно указанных эндпоинтах, но не для информирования о валидности получаемых данных.