Webhooks: подключение и использование
Webhooks — уведомление сторонних приложений посредством отправки уведомлений о событиях, произошедших на платформе обучение.
Список возможных типов вебхуков:
- CourseStat - статистика по курсу;
- SectionStat - статистика по разделу курса;
- QuizStat - статистика по тесту в курсе
- TaskStat - статистика по заданию в курсе
- ScormStat - статистика по SCORM заданию в курсе
- MaterialStat - статистика по материалу в курсе
Подписываться на все события необязательно, можно на несколько или одно. URL можно указать для каждой сущности отдельно.
Для подключения нужно обратиться в техническую поддержку, написав на адрес эл. почты help@teachbase.ru письмо с просьбой подключения Webhook в свободной форме, при этом укажите:
- Какой тип веб-хуков подключить: CourseStat, SectionStat и т.д;
- Куда подключить веб-хук: id курса, id теста и т.д. Либо, можем подключить ко всем объектам сразу - уточните, если требуется;
- Какой URL указать для каждого из типов веб-хуков, которые планируете подключить.
Webhook отправляет на стороннее приложение POST переменную, которая содержит массив вида {“entity”:{“action”:{массив полей сущности}}}. После создания новой сущности будет приходить POST запрос на указанный эндопнт(ы) вида:
<span>{ "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> // для этой сущности } }</span>
После обновления сущности будет приходить 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-х минут) на случай перезагрузки оборудования и иных временных причин. Можно сказать, что статус ответа служит для подтверждения работоспособности канала передачи и правильно указанных эндпоинтах, но не для информирования о валидности получаемых данных.