WORKSECTION

Вебхуки

Як працює вебхук?

Вебхуки – це зручний інструмент, який дозволяє отримувати повідомлення про зміни у Worksection без необхідності постійних запитів до API.

При виникненні певних змін у вашому акаунті автоматично відправляється невеликий пакет даних на вказану вами HTTP-точку призначення. Вебхуки сповіщають про події акаунту, а не користувача. Також можна підписатись на різні типи подій і вказати проєкти, за якими ви бажаєте отримувати дані.

Ця стаття була вам корисною? Так, дякую! Ні

Створення вебхука

Для створення вебхуку зайдіть в налаштування акаунту в розділ API
В полі
Мої вебхуки натисніть Створити



  1. Введіть URL, що буде приймати запити вебхука.
    Він повинен повертати наступну http-відповідь: (HTTP status: 200, Header: JSON, Body: {“status”: OK”}) на будь-який запит за час до 5 секунд, інакше цей запит буде рахуватись як помилка.
  2. Виберіть події, по яким будуть надсилатись запити на вказаний URL.
  3. Виберіть довільну кількість проєктів, за якими будуть надсилатись події. За замовчуванням події будуть надсилатись за всіма проєктами.
  4. За необхідності вкажіть http user, http password для підключення через basic access authentication.
  5. Перевірте валідність вашого URL — натисніть кнопку Тест. 

Для підтвердження натисніть кнопку Створити.

Ця стаття була вам корисною? Так, дякую! Ні

Додаткові налаштування вебхука

За замовчуванням створений вебхук буде вимкненим. Коли буде потрібно – включіть його вручну: 


Якщо вказаний URL виявиться невалідним, то при включенні з‘явиться помилка: 




За потреби вебхук можна відключити та видалити. 




Вебхук може перебувати в трьох статусах: 
  • Сірий – Вимкнений”
  • Зелений – Працює”
  • Помаранчевий – Працює, але має невдалі спроби” 

Якщо відбудеться 10 помилок – вебхук буде автоматично вимкнено. 

Ця стаття була вам корисною? Так, дякую! Ні

Типи подій вебхуку

ПОДІЯ
ОПИС
Створення завдання
Запускається, коли користувач створює нове завдання
Редагування завдання
Запускається при зміні завдання
Виконання завданняЗапускається, коли завдання змінює статус на виконано”
Видалення завданняЗапускається при видаленні завдання
Створення коментаря
Запускається, коли користувач створює новий коментар
Редагування коментаря
Запускається при зміні коментаря
Видалення коментаря
Запускається при видаленні коментаря
Створення проєкту
Запускається, коли користувач створює новий проєкт
Редагування проєкту
Запускається при зміні проєкту
Ця стаття була вам корисною? Так, дякую! Ні

Приклад використання вебхука

Ввімкнений вебхук виглядає так: 


При створенні проєкту на вказаний URL надійде наступна подія: 


Ця стаття була вам корисною? Так, дякую! Ні

Створення вебхука через API: add_webhook

Метод add_webhook може бути виконаний з використанням ключа адміністративного API: 

https://your—domain.com/api/admin/v2/?action=add_webhook&
url=<url>&events=<events>&http_user=<http_user>&http_pass=<http_pass>hash=HASH

або ж з використанням OAuth 2.0 токену з scope = administrative:

curl -X GET -H "Authorization: Bearer <token_value>"
https://your-domain.com/api/oauth2?action=add_webhook&url=<url>&events=<events>&http_user=<http_user>&http_pass=<http_pass>

ПАРАМЕТР
ОПИС
url
URL вебхука на який будуть відправлятись події. URL повинен повертати відповідь у форматі (HTTP status: 200, Header: json, Body: {"status": "OK"})
events
Налаштування подій, по яким будуть відправлятись повідомлення на вказаний URL, вказуємо через кому. Можливі значення: post_task, post_comment, post_project, update_task, update_comment, update_project, delete_task, delete_comment, close_task
http_user
Необов'язковий параметр - користувач при використанні basic access authentication
http_pass
Необов'язковий параметр - пароль при використанні basic access authentication
projects
Необов'язковий параметр - ID проєктів через кому, вказуємо якщо потрібно обмежити відправлення подій для певних проєктів

Приклад успішної відповіді:

{
    "status": "ok",
    "id": 16
}

Приклад помилки:

{
    "status": "error",
    "status_code": 11,
    "message": "Url should respond 200 HTTP_CODE and JSON {status:OK}",
    "message_details": "https://google.com"
}​​
​​
Ця стаття була вам корисною? Так, дякую! Ні

Отримання вебхуків через API: get_webhooks

Метод get_webhooks може бути виконаний з використанням ключа адміністративного API

https://your—domain.com/api/admin/v2/?action=get_webhooks&hash=HASH

або ж з використанням OAuth 2.0 токену з scope = administrative:

curl -X GET -H "Authorization: Bearer <token_value>"
https://your—domain.com/api/oauth2?action=get_webhooks

Приклад відповіді:

{
    "status": "ok",
    "data": [
        {
            "id": "14",
            "url": "https://eoaerzysr8s23hq.m.pipedream.net",
            "events": "post_task,delete_task,reopen_task",
            "status": "active",
            "projects": "333"
        },
        {
            "id": "16",
            "url": "https://eolb4pffb2s43u.m.pipedream.net",
            "events": "post_task,post_comment,post_project",
            "status": "active"
        }
    ]
}
Ця стаття була вам корисною? Так, дякую! Ні

Видалення вебхука через API: delete_webhook

Метод get_webhooks може бути виконаний з використанням ключа адміністративного API

https://your—domain.com/api/admin/v2/?action=delete_webhook&id=<id>&hash=HASH

або ж з використанням OAuth2 токену з scope = administrative:

curl -X GET -H "Authorization: Bearer <token_value>"
https://your—domain.com/api/oauth2?action=delete_webhookd&id=<id>

Приклад відповіді:

{
    "status": "ok"
}
Ця стаття була вам корисною? Так, дякую! Ні
esc
или
Роздрукувати