Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Webhook это новый сервис в iSpring Learn. Теперь можно получать уведомления об интересующих о событиях в формате POST запроса по HTTP. Больше не нужно отправлять запросы в API, достаточно отследить изменения. Для этого нужно подписаться на интересующие события и иметь сервис, который будет обрабатывать уведомления.Суть и шаги интеграции:

Как это работает

  1. Пользователь регистрирует подписчика. Он указывает URL, указывая URL на который будут в будущем приходит приходить сообщения. Для одного аккаунта может быть несколько подписчиков.
    Используйте запрос:
    POST  /webhook/register

  2. Пользователь подтверждает URL , отправив на него код с помощью кода подтверждения. После получения кода на указанный URL  URL пользователь подтверждает URL.
    Используйте запросы: POST  /webhook/code/send
    иPOST  /webhook/confirm
    С этого момента интеграцию, можно считать активнойинтеграция считается активной.

  3. Подписчик создается активным и может сразу получать сообщения. При желании подписчика Подписчика можно выключить и включить обратно.
    Используйте запросы: POST  /webhook/disable
    иPOST  /webhook/enable

  4. Подписчика можно удалить навсегда.
    Используйте запрос: POST  /webhook/remove

  5. Настройки подписчика можно изменить. Если меняется URL, его нужно снова подтверждать отправкой с помощью кода.
    Используйте запрос: POST /webhook/settings/change

  6. Пользователь может подписать подписчика на предложенные события iSpring Learn. В рамках одного аккаунта разные подписчики могут быть подписаны на разные события. Но один Один подписчик может быть подписан только на событие одного типа.
    Используйте запрос: POST  /webhook/subscribe

  7. Пользователь может отписать подписчика от подписки.
    Используйте запрос: POST  /webhook/unsubscribe

  8. Пользователь может получить список подписок подписчика и информацию о подписчике.
    Используйте запросы: GET  /webhook/subscription/list
    GET 
    иGET /webhook/subscriber/info

Отправка событий

Все события События отправляются последовательно. Webhook ожидает некоторое время и отправляет события списком. В список объединяются только подряд идущие события одного типа. Если встретится событие другого типа, то последовательность будет прервана и начнёт накапливаться новая последовательность.

Сервис При получении сервис подписчика должен возвращать 200 код при получении, все другие код 200. Другие коды будут считаться неудачей и , будет запущен процесс повторной отправки.

Повторная отправка

При неудачной отправке сервис будет пытаться попытается сделать повторную отправку. Делать это он будет в течение сутокЭто занимает сутки. Во время ожидания новой попытки события, события которые произошли, будут продолжать копиться. При успешной повторной попытке все события, которые накопились за время, пока сервис подписчика был недоступен, отправятся подряд. 

Если за сутки не удалось доставить сообщения, то статус подтверждения callbackURL перейдёт в неподтверждённый. И его Его снова нужно будет подтвердить. Все события, накопленные за время ретраев в таком случае попыток, будут потеряны.

Подпись 

Для Webhook может подписывать запросы для проверки источника сообщений, webhook может подписывать запросы. Для этого используется настройка настройку secret. Если такая настройка была добавлена, то каждый запрос, отправляемый webhook, будет иметь заголовок X-Hub-Signature.

Содержимое формируется следующим образом: body отправляемого запроса конкатенируется с secret и затем полученная строка хэшируется алгоритмом SHA-256. Этот хэш и Хэш является содержимым заголовка.

Информация
Запросы отправлять может только пользователь лерна с ролями: овнер, админ аккаунтаОтправлять запросы могут пользователи Learn с ролями Владелец и Администратор аккаунта.