Create webhooks.markdown
This commit is contained in:
487
doc/tr_TR/webhooks.markdown
Normal file
487
doc/tr_TR/webhooks.markdown
Normal file
@@ -0,0 +1,487 @@
|
|||||||
|
Web kancası-Webhooks
|
||||||
|
========
|
||||||
|
|
||||||
|
Web kancası-Webhooks harici uygulamalarla işlemleri gerçekleştirmek için kullanışlıdır.
|
||||||
|
|
||||||
|
- Webhook'lar, basit bir URL'yi çağırarak bir görev oluşturmak için kullanılabilir (Bunu da API ile yapabilirsiniz)
|
||||||
|
- Kanboard'da bir olay meydana geldiğinde (görev yaratma, açıklama güncellendi, vb.) Harici bir URL otomatik olarak çağrılabilir
|
||||||
|
|
||||||
|
Web kancası-Webhooks alıcı nasıl yazılır?
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
Kanboard'un tüm dahili olayları harici bir URL'ye gönderilebilir.
|
||||||
|
|
||||||
|
- Web kancası-Webhooks URL'si **Ayarlar> Web kancası-Webhooks> Web kancası-Webhooks URL** 'de tanımlanmalıdır.
|
||||||
|
- Bir olay tetiklendiğinde Kanboard önceden tanımlı URL'yi otomatik olarak çağırır
|
||||||
|
- Veriler JSON formatında kodlanır ve bir POST HTTP isteğiyle gönderilir
|
||||||
|
- Web kancası-Webhooks anahtarı-token da bir sorgu dizesi parametresi olarak gönderilir, böylece isteğin gerçekten Kanboard'dan geldiğini kontrol edebilirsiniz.
|
||||||
|
- **Özel URL'niz 1 saniyeden kısa bir sürede yanıt almalıdır**, bu istekler senkron (PHP sınırlaması) olup komut dosyası çok yavaşsa kullanıcı arayüzünü yavaşlatabilir!
|
||||||
|
|
||||||
|
### Desteklenen etkinlikler listesi
|
||||||
|
|
||||||
|
- comment.create
|
||||||
|
- comment.update
|
||||||
|
- comment.delete
|
||||||
|
- file.create
|
||||||
|
- task.move.project
|
||||||
|
- task.move.column
|
||||||
|
- task.move.position
|
||||||
|
- task.move.swimlane
|
||||||
|
- task.update
|
||||||
|
- task.create
|
||||||
|
- task.close
|
||||||
|
- task.open
|
||||||
|
- task.assignee_change
|
||||||
|
- subtask.update
|
||||||
|
- subtask.create
|
||||||
|
- subtask.delete
|
||||||
|
- task_internal_link.create_update
|
||||||
|
- task_internal_link.delete
|
||||||
|
|
||||||
|
### HTTP isteği örneği
|
||||||
|
|
||||||
|
```
|
||||||
|
POST https://your_webhook_url/?token=WEBHOOK_TOKEN_HERE
|
||||||
|
User-Agent: Kanboard Webhook
|
||||||
|
Content-Type: application/json
|
||||||
|
Connection: close
|
||||||
|
|
||||||
|
{
|
||||||
|
"event_name": "task.move.column",
|
||||||
|
"event_data": {
|
||||||
|
"task_id": "4",
|
||||||
|
"task": {
|
||||||
|
"id": "4",
|
||||||
|
"reference": "",
|
||||||
|
"title": "My task",
|
||||||
|
"description": "",
|
||||||
|
"date_creation": "1469314356",
|
||||||
|
"date_completed": null,
|
||||||
|
"date_modification": "1469315422",
|
||||||
|
"date_due": "1469491200",
|
||||||
|
"date_started": "0",
|
||||||
|
"time_estimated": "0",
|
||||||
|
"time_spent": "0",
|
||||||
|
"color_id": "green",
|
||||||
|
"project_id": "1",
|
||||||
|
"column_id": "1",
|
||||||
|
"owner_id": "1",
|
||||||
|
"creator_id": "1",
|
||||||
|
"position": "1",
|
||||||
|
"is_active": "1",
|
||||||
|
"score": "0",
|
||||||
|
"category_id": "0",
|
||||||
|
"priority": "0",
|
||||||
|
"swimlane_id": "0",
|
||||||
|
"date_moved": "1469315422",
|
||||||
|
"recurrence_status": "0",
|
||||||
|
"recurrence_trigger": "0",
|
||||||
|
"recurrence_factor": "0",
|
||||||
|
"recurrence_timeframe": "0",
|
||||||
|
"recurrence_basedate": "0",
|
||||||
|
"recurrence_parent": null,
|
||||||
|
"recurrence_child": null,
|
||||||
|
"category_name": null,
|
||||||
|
"swimlane_name": null,
|
||||||
|
"project_name": "Demo Project",
|
||||||
|
"default_swimlane": "Default swimlane",
|
||||||
|
"column_title": "Backlog",
|
||||||
|
"assignee_username": "admin",
|
||||||
|
"assignee_name": null,
|
||||||
|
"creator_username": "admin",
|
||||||
|
"creator_name": null
|
||||||
|
},
|
||||||
|
"changes": {
|
||||||
|
"src_column_id": "2",
|
||||||
|
"dst_column_id": "1",
|
||||||
|
"date_moved": "1469315398"
|
||||||
|
},
|
||||||
|
"project_id": "1",
|
||||||
|
"position": 1,
|
||||||
|
"column_id": "1",
|
||||||
|
"swimlane_id": "0",
|
||||||
|
"src_column_id": "2",
|
||||||
|
"dst_column_id": "1",
|
||||||
|
"date_moved": "1469315398",
|
||||||
|
"recurrence_status": "0",
|
||||||
|
"recurrence_trigger": "0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Tüm etkinlik yükleri aşağıdaki biçimde:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"event_name": "model.event_name",
|
||||||
|
"event_data": {
|
||||||
|
"key1": "value1",
|
||||||
|
"key2": "value2",
|
||||||
|
...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`event_data` değerleri olaylar arasında normalize edilmek zorunda değildir.
|
||||||
|
|
||||||
|
### Etkinlik yükü örnekleri
|
||||||
|
|
||||||
|
Görev yaratma:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"event_name": "task.create",
|
||||||
|
"event_data": {
|
||||||
|
"task_id": 5,
|
||||||
|
"task": {
|
||||||
|
"id": "5",
|
||||||
|
"reference": "",
|
||||||
|
"title": "My new task",
|
||||||
|
"description": "",
|
||||||
|
"date_creation": "1469315481",
|
||||||
|
"date_completed": null,
|
||||||
|
"date_modification": "1469315481",
|
||||||
|
"date_due": "0",
|
||||||
|
"date_started": "0",
|
||||||
|
"time_estimated": "0",
|
||||||
|
"time_spent": "0",
|
||||||
|
"color_id": "orange",
|
||||||
|
"project_id": "1",
|
||||||
|
"column_id": "2",
|
||||||
|
"owner_id": "1",
|
||||||
|
"creator_id": "1",
|
||||||
|
"position": "1",
|
||||||
|
"is_active": "1",
|
||||||
|
"score": "3",
|
||||||
|
"category_id": "0",
|
||||||
|
"priority": "2",
|
||||||
|
"swimlane_id": "0",
|
||||||
|
"date_moved": "1469315481",
|
||||||
|
"recurrence_status": "0",
|
||||||
|
"recurrence_trigger": "0",
|
||||||
|
"recurrence_factor": "0",
|
||||||
|
"recurrence_timeframe": "0",
|
||||||
|
"recurrence_basedate": "0",
|
||||||
|
"recurrence_parent": null,
|
||||||
|
"recurrence_child": null,
|
||||||
|
"category_name": null,
|
||||||
|
"swimlane_name": null,
|
||||||
|
"project_name": "Demo Project",
|
||||||
|
"default_swimlane": "Default swimlane",
|
||||||
|
"column_title": "Ready",
|
||||||
|
"assignee_username": "admin",
|
||||||
|
"assignee_name": null,
|
||||||
|
"creator_username": "admin",
|
||||||
|
"creator_name": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Görev değişikliği:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"event_name": "task.update",
|
||||||
|
"event_data": {
|
||||||
|
"task_id": "5",
|
||||||
|
"task": {
|
||||||
|
"id": "5",
|
||||||
|
"reference": "",
|
||||||
|
"title": "My new task",
|
||||||
|
"description": "New description",
|
||||||
|
"date_creation": "1469315481",
|
||||||
|
"date_completed": null,
|
||||||
|
"date_modification": "1469315531",
|
||||||
|
"date_due": "1469836800",
|
||||||
|
"date_started": "0",
|
||||||
|
"time_estimated": "0",
|
||||||
|
"time_spent": "0",
|
||||||
|
"color_id": "purple",
|
||||||
|
"project_id": "1",
|
||||||
|
"column_id": "2",
|
||||||
|
"owner_id": "1",
|
||||||
|
"creator_id": "1",
|
||||||
|
"position": "1",
|
||||||
|
"is_active": "1",
|
||||||
|
"score": "3",
|
||||||
|
"category_id": "0",
|
||||||
|
"priority": "2",
|
||||||
|
"swimlane_id": "0",
|
||||||
|
"date_moved": "1469315481",
|
||||||
|
"recurrence_status": "0",
|
||||||
|
"recurrence_trigger": "0",
|
||||||
|
"recurrence_factor": "0",
|
||||||
|
"recurrence_timeframe": "0",
|
||||||
|
"recurrence_basedate": "0",
|
||||||
|
"recurrence_parent": null,
|
||||||
|
"recurrence_child": null,
|
||||||
|
"category_name": null,
|
||||||
|
"swimlane_name": null,
|
||||||
|
"project_name": "Demo Project",
|
||||||
|
"default_swimlane": "Default swimlane",
|
||||||
|
"column_title": "Ready",
|
||||||
|
"assignee_username": "admin",
|
||||||
|
"assignee_name": null,
|
||||||
|
"creator_username": "admin",
|
||||||
|
"creator_name": null
|
||||||
|
},
|
||||||
|
"changes": {
|
||||||
|
"description": "New description",
|
||||||
|
"color_id": "purple",
|
||||||
|
"date_due": 1469836800
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Görev güncelleme etkinlikleri, güncellenmiş değerleri içeren `changes` adı verilen bir alana sahiptir.
|
||||||
|
|
||||||
|
Yorum yaratma:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"event_name": "comment.create",
|
||||||
|
"event_data": {
|
||||||
|
"comment": {
|
||||||
|
"id": "1",
|
||||||
|
"task_id": "5",
|
||||||
|
"user_id": "1",
|
||||||
|
"date_creation": "1469315727",
|
||||||
|
"comment": "My comment.",
|
||||||
|
"reference": null,
|
||||||
|
"username": "admin",
|
||||||
|
"name": null,
|
||||||
|
"email": null,
|
||||||
|
"avatar_path": null
|
||||||
|
},
|
||||||
|
"task": {
|
||||||
|
"id": "5",
|
||||||
|
"reference": "",
|
||||||
|
"title": "My new task",
|
||||||
|
"description": "New description",
|
||||||
|
"date_creation": "1469315481",
|
||||||
|
"date_completed": null,
|
||||||
|
"date_modification": "1469315531",
|
||||||
|
"date_due": "1469836800",
|
||||||
|
"date_started": "0",
|
||||||
|
"time_estimated": "0",
|
||||||
|
"time_spent": "0",
|
||||||
|
"color_id": "purple",
|
||||||
|
"project_id": "1",
|
||||||
|
"column_id": "2",
|
||||||
|
"owner_id": "1",
|
||||||
|
"creator_id": "1",
|
||||||
|
"position": "1",
|
||||||
|
"is_active": "1",
|
||||||
|
"score": "3",
|
||||||
|
"category_id": "0",
|
||||||
|
"priority": "2",
|
||||||
|
"swimlane_id": "0",
|
||||||
|
"date_moved": "1469315481",
|
||||||
|
"recurrence_status": "0",
|
||||||
|
"recurrence_trigger": "0",
|
||||||
|
"recurrence_factor": "0",
|
||||||
|
"recurrence_timeframe": "0",
|
||||||
|
"recurrence_basedate": "0",
|
||||||
|
"recurrence_parent": null,
|
||||||
|
"recurrence_child": null,
|
||||||
|
"category_name": null,
|
||||||
|
"swimlane_name": null,
|
||||||
|
"project_name": "Demo Project",
|
||||||
|
"default_swimlane": "Default swimlane",
|
||||||
|
"column_title": "Ready",
|
||||||
|
"assignee_username": "admin",
|
||||||
|
"assignee_name": null,
|
||||||
|
"creator_username": "admin",
|
||||||
|
"creator_name": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Alt görev yaratma:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"event_name": "subtask.create",
|
||||||
|
"event_data": {
|
||||||
|
"subtask": {
|
||||||
|
"id": "1",
|
||||||
|
"title": "My subtask",
|
||||||
|
"status": "0",
|
||||||
|
"time_estimated": "0",
|
||||||
|
"time_spent": "0",
|
||||||
|
"task_id": "5",
|
||||||
|
"user_id": "1",
|
||||||
|
"position": "1",
|
||||||
|
"username": "admin",
|
||||||
|
"name": null,
|
||||||
|
"timer_start_date": 0,
|
||||||
|
"status_name": "Todo",
|
||||||
|
"is_timer_started": false
|
||||||
|
},
|
||||||
|
"task": {
|
||||||
|
"id": "5",
|
||||||
|
"reference": "",
|
||||||
|
"title": "My new task",
|
||||||
|
"description": "New description",
|
||||||
|
"date_creation": "1469315481",
|
||||||
|
"date_completed": null,
|
||||||
|
"date_modification": "1469315531",
|
||||||
|
"date_due": "1469836800",
|
||||||
|
"date_started": "0",
|
||||||
|
"time_estimated": "0",
|
||||||
|
"time_spent": "0",
|
||||||
|
"color_id": "purple",
|
||||||
|
"project_id": "1",
|
||||||
|
"column_id": "2",
|
||||||
|
"owner_id": "1",
|
||||||
|
"creator_id": "1",
|
||||||
|
"position": "1",
|
||||||
|
"is_active": "1",
|
||||||
|
"score": "3",
|
||||||
|
"category_id": "0",
|
||||||
|
"priority": "2",
|
||||||
|
"swimlane_id": "0",
|
||||||
|
"date_moved": "1469315481",
|
||||||
|
"recurrence_status": "0",
|
||||||
|
"recurrence_trigger": "0",
|
||||||
|
"recurrence_factor": "0",
|
||||||
|
"recurrence_timeframe": "0",
|
||||||
|
"recurrence_basedate": "0",
|
||||||
|
"recurrence_parent": null,
|
||||||
|
"recurrence_child": null,
|
||||||
|
"category_name": null,
|
||||||
|
"swimlane_name": null,
|
||||||
|
"project_name": "Demo Project",
|
||||||
|
"default_swimlane": "Default swimlane",
|
||||||
|
"column_title": "Ready",
|
||||||
|
"assignee_username": "admin",
|
||||||
|
"assignee_name": null,
|
||||||
|
"creator_username": "admin",
|
||||||
|
"creator_name": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Dosya yükleme:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"event_name": "task.file.create",
|
||||||
|
"event_data": {
|
||||||
|
"file": {
|
||||||
|
"id": "1",
|
||||||
|
"name": "kanboard-latest.zip",
|
||||||
|
"path": "tasks/5/6f32893e467e76671965b1ec58c06a2440823752",
|
||||||
|
"is_image": "0",
|
||||||
|
"task_id": "5",
|
||||||
|
"date": "1469315613",
|
||||||
|
"user_id": "1",
|
||||||
|
"size": "4907308"
|
||||||
|
},
|
||||||
|
"task": {
|
||||||
|
"id": "5",
|
||||||
|
"reference": "",
|
||||||
|
"title": "My new task",
|
||||||
|
"description": "New description",
|
||||||
|
"date_creation": "1469315481",
|
||||||
|
"date_completed": null,
|
||||||
|
"date_modification": "1469315531",
|
||||||
|
"date_due": "1469836800",
|
||||||
|
"date_started": "0",
|
||||||
|
"time_estimated": "0",
|
||||||
|
"time_spent": "0",
|
||||||
|
"color_id": "purple",
|
||||||
|
"project_id": "1",
|
||||||
|
"column_id": "2",
|
||||||
|
"owner_id": "1",
|
||||||
|
"creator_id": "1",
|
||||||
|
"position": "1",
|
||||||
|
"is_active": "1",
|
||||||
|
"score": "3",
|
||||||
|
"category_id": "0",
|
||||||
|
"priority": "2",
|
||||||
|
"swimlane_id": "0",
|
||||||
|
"date_moved": "1469315481",
|
||||||
|
"recurrence_status": "0",
|
||||||
|
"recurrence_trigger": "0",
|
||||||
|
"recurrence_factor": "0",
|
||||||
|
"recurrence_timeframe": "0",
|
||||||
|
"recurrence_basedate": "0",
|
||||||
|
"recurrence_parent": null,
|
||||||
|
"recurrence_child": null,
|
||||||
|
"category_name": null,
|
||||||
|
"swimlane_name": null,
|
||||||
|
"project_name": "Demo Project",
|
||||||
|
"default_swimlane": "Default swimlane",
|
||||||
|
"column_title": "Ready",
|
||||||
|
"assignee_username": "admin",
|
||||||
|
"assignee_name": null,
|
||||||
|
"creator_username": "admin",
|
||||||
|
"creator_name": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Görev bağlantısı oluşturulması:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"event_name": "task_internal_link.create_update",
|
||||||
|
"event_data": {
|
||||||
|
"task_link": {
|
||||||
|
"id": "2",
|
||||||
|
"opposite_task_id": "5",
|
||||||
|
"task_id": "4",
|
||||||
|
"link_id": "3",
|
||||||
|
"label": "is blocked by",
|
||||||
|
"opposite_link_id": "2"
|
||||||
|
},
|
||||||
|
"task": {
|
||||||
|
"id": "4",
|
||||||
|
"reference": "",
|
||||||
|
"title": "My task",
|
||||||
|
"description": "",
|
||||||
|
"date_creation": "1469314356",
|
||||||
|
"date_completed": null,
|
||||||
|
"date_modification": "1469315422",
|
||||||
|
"date_due": "1469491200",
|
||||||
|
"date_started": "0",
|
||||||
|
"time_estimated": "0",
|
||||||
|
"time_spent": "0",
|
||||||
|
"color_id": "green",
|
||||||
|
"project_id": "1",
|
||||||
|
"column_id": "1",
|
||||||
|
"owner_id": "1",
|
||||||
|
"creator_id": "1",
|
||||||
|
"position": "1",
|
||||||
|
"is_active": "1",
|
||||||
|
"score": "0",
|
||||||
|
"category_id": "0",
|
||||||
|
"priority": "0",
|
||||||
|
"swimlane_id": "0",
|
||||||
|
"date_moved": "1469315422",
|
||||||
|
"recurrence_status": "0",
|
||||||
|
"recurrence_trigger": "0",
|
||||||
|
"recurrence_factor": "0",
|
||||||
|
"recurrence_timeframe": "0",
|
||||||
|
"recurrence_basedate": "0",
|
||||||
|
"recurrence_parent": null,
|
||||||
|
"recurrence_child": null,
|
||||||
|
"category_name": null,
|
||||||
|
"swimlane_name": null,
|
||||||
|
"project_name": "Demo Project",
|
||||||
|
"default_swimlane": "Default swimlane",
|
||||||
|
"column_title": "Backlog",
|
||||||
|
"assignee_username": "admin",
|
||||||
|
"assignee_name": null,
|
||||||
|
"creator_username": "admin",
|
||||||
|
"creator_name": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user