База знань LMS Collaborator

Головна/Технічні вимоги/Робота з API/Webhooks

Webhooks

Інформація

Webhook (також ще називають веб-зворотнім викликом (web callback) чи HTTP push API) - веб-програми, що працюють за допомогою зворотних дзвінків для надання іншим програмам інформації в реальному часі.
Webhook доставляє дані до інших програм одразу, а це означає, що ви отримуєте дані негайно. На відміну від типових API - інтерфейсів, де вам потрібно буде дуже часто опитувати дані, щоб отримувати їх в режимі реального часу. Це робить Webhook набагато раціональнішим як для провайдера, так і для споживача. Єдиний недолік Webhook - складність їх початкового налаштування.
Webhook іноді називають “Reverse APIs” (Перевернутий API), оскільки вони дають вам те, що становить специфікацію API, і ви повинні розробити API для використання Webhook. Webhook відправить HTTP-запит вашому додатку (зазвичай POST), і вам буде доручено його інтерпретувати.


Загальне

Кожен Webhook в LMS Collaborator відправляє POST-запит (Content type: application / json) з JSON в тілі коду.

Webhook має кілька полів за замовчуванням в тілі, ці поля будуть перенесені для будь-якого типу книги. Поля за замовчуванням:

Поле Тип Опис
web_hook_id int без знака Внутрішній ідентифікатор веб-перехоплювача
web_hook_log_id int без знака Ідентифікатор виклику Webhook
web_hook_url строка Кінцева URL-адреса веб-перехоплювача
web_hook_type строка Тип Webhook
secret строка Секрет, див. Розділ «Безпека»

Захист

Кожен Webhook має свій секрет:

Цей секрет буде переданий в параметрах тіла (параметр secret) та у HTTP-заголовку X-Cbr-WebHook-Token. Таким чином, ви можете перевірити цей секрет у своїй логіці в кінцевій точці і дозволити тільки запити від Webhook.


Типи

На даний момент ми підтримуємо наступні Webhooks:

  • Надіслати повідомлення - викличе будь-яке повідомлення користувача. Він працює тільки для повідомлень електронною поштою, тому, якщо ви вимкнете шаблон електронної пошти у шаблонах повідомлень (див. Налаштування шаблонів повідомлень), цей Webhooks не буде викликаний.

Поля:

Колонка Тип Опис
user.id int без знака Внутрішній ідентифікатор користувача
user.uid рядок Зовнішній ідентифікатор користувача
user.email рядок Внутрішній ідентифікатор користувача
user.fullname рядок ПІБ користувача
user.phone рядок Телефон користувача
event рядок Ім'я події внутрішнього повідомлення
subject рядок Тема повідомлення
body рядок Тіло повідомлення (простий текст)

  • Призначити Завдання - буде викликатись, коли в LMS призначать Завдання Користувачеві (вручну адміністратором або автоматично за Правилами автоматизації або Траєкторіями)

Поля:

Поле Тип Опис
user_id int без знака Внутрішній ідентифікатор користувача
task_id int без знака Ідентифікатор Завдання
title рядок Назва Завдання
url рядок URL-адреса Завдання
type рядок Тип Завдання Можливі типи: Вебінари, Ресурси, 'separator', Курси, Опитування, Опитування 360, Програми, Комплексні тести, Практикуми, Вебінари, Чек-листи
element_id int без знака Ідентифікатор елемента Завдання
tags рядок Теги Завдання (через кому)
parent_id int без знака Ідентифікатор батька Завдання
program_id int без знака Ідентифікатор Програми Завдання (якщо Завдання є частиною Програми)
points int без знака Бали за виконання Завдання

  • Відмінити призначення Завдання - буде викликано, коли адміністратор скасує призначення Завдання Користувачеві.

Поля:

Поле Тип Опис
user_id int без знака Внутрішній ідентифікатор Користувача
task_id int без знака Ідентифікатор Завдання

  • Змінити статус Завдання - змінить статус Завдання будь-якого Користувача.

Поля:

Поле Тип Опис
user_id int без знака Внутрішній ідентифікатор Користувача
task_id int без знака Ідентифікатор Завдання
status рядок Статус Завдання. Можливі значення: "розпочато", "в процесі", "виконано", "очікує перевірки", "провалено"

  • Змінити рейтинг Користувача - буде викликати під час зміни рейтингу навчання Користувача (див. Рейтинг користувачів)

Поля:

Поле Тип Опис
user_id int без знака Внутрішній ідентифікатор користувача
rating int без знака Значення рейтингу навчання

Виправлення проблем

Ви можете знайти інформацію про запити Webhooks та відповіді в журналах.


Приклад

Приклад обробки кожного типу Webhooks можна знайти в
https://github.com/davintoo/webhooks-example-app
Ця програма розгорнута і запускається на Heroku
https://collaborator-web-hooks-example.herokuapp.com/

Залишились питання?
Наша служба технічної підтримки завжди рада допомогти!
Напишіть нам на [email protected] або телефонуйте по номеру +380672170440. Якщо Ви зареєстровані на нашому Helpdesk - надішліть заявку за допомогою кнопки нижче.
Створити заявку