目前 TAPD 支持 Webhook 了。现在支持需求、缺陷、任务、发布评审在创建、变更、删除后,往指定 URL POST 相关信息。
# 如何接入
目前可以在 左下角头像 -> 问题反馈
上提交申请。提供要监听的项目ID
或者公司ID
,事件
(需求创建、需求更新、需求状态变更、需求删除、缺陷创建、缺陷更新、缺陷状态变更、缺陷删除、任务创建、任务更新、任务状态变更、任务删除、发布评审创建、发布评审更新,前后置对象绑定,前后置对象解绑 ,可多选),接收数据的 URL
,验证密码(非必选,给接入方验证请求是否来自 TAPD),数据格式(非必选,可选有 json 、form,默认为 form 形式,下面有说明)。
# 数据格式及结构
数据格式支持 json 及 form(x-www-form-urlencoded格式,即 key1=value1&key2=value2&key3=value 的形式,key及value都进行过 urlencode)。
# 新建
新建类事件有需求创建(story::create)、缺陷创建(bug::create)、任务创建(task::create)、发布评审创建(launchform::create)。当事件发生时, POST 过去的数据如下:
字段 | 类型 | 说明 |
---|---|---|
event | string | 事件名 |
event_from | string | 事件触发地方。有web、api |
workspace_id | integer | 项目ID |
current_user | string | 操作人昵称 |
event_id | integer | 事件ID |
id | integer | 新对象ID。需求、缺陷、任务、发布评审的都是19位长度的长ID |
secret | string | 双方约定的验证密码 |
created | datetime | 事件触发时的时间。格式:Y-m-d H:i:s,如 2011-11-11 11:11:11 |
例子:
(
[event] => story::create
[event_from] => web
[workspace_id] => 10094331
[id] => 1010094331500623503
[secret] =>
[created] => 2017-04-12 09:04:29
)
2
3
4
5
6
7
8
# 更新
更新类的事件有需求更新(story::update)、缺陷更新(bug::update)、任务更新(task::update)、发布评审更新(launchform::update)。当事件发生时, POST 过去的数据如下:
字段 | 类型 | 说明 |
---|---|---|
event | string | 事件名 |
event_from | string | 事件触发地方。有web、api |
workspace_id | integer | 项目ID |
current_user | string | 操作人昵称 |
event_id | integer | 事件ID |
id | integer | 新对象ID。需求、缺陷、任务、发布评审的都是19位长度的长ID |
old_* | string | 会有一系列 old_字段名 的字段,这个是发生变更前的数据。如果需要拉取最新数据,建议配合 tapdapi 使用 |
change_fields | string | 发生变更的字段,以 , 分隔 |
secret | string | 双方约定的验证密码 |
created | datetime | 事件触发时的时间。格式:Y-m-d H:i:s,如 2011-11-11 11:11:11 |
例子:
(
[event] => task::update
[event_from] => web
[workspace_id] => 755
[id] => 1000000755500588953
[old_id] => 1000000755500588953
[old_name] => 批量添加_33
[old_description_type] => 1
[old_creator] => jemerychen
[old_created] => 2017-04-07 16:49:46
[old_modified] => 2017-04-14 16:20:49
[old_parent_id] => 0
[old_children_id] => |
[old_ancestor_id] => 0
[old_workspace_id] => 755
[old_status] => open
[old_priority] =>
[old_owner] => darohu;
[old_begin] => 2017-04-04
[old_story_id] => 1000000755500623195
[old_iteration_id] => 0
[old_effort] => 0
[old_effort_completed] => 0
[old_exceed] => 0
[old_remain] => 0
[old_progress] => 0
[old_entity_type] => Task
[old_attachment_count] => 0
[change_fields] => due
[secret] =>
[created] => 2017-04-14 16:20:52
)
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 删除
删除类的事件有需求删除(story::delete)、缺陷删除(bug::delete)、任务删除(task::delete)。当事件发生时, POST 过去的数据如下:
字段 | 类型 | 说明 |
---|---|---|
event | string | 事件名 |
event_from | string | 事件触发地方。有web、api |
workspace_id | integer | 项目ID |
current_user | string | 操作人昵称 |
event_id | integer | 事件ID |
id | integer | 新对象ID。需求、缺陷、任务、发布评审的都是19位长度的长ID |
secret | string | 双方约定的验证密码 |
created | datetime | 事件触发时的时间。格式:Y-m-d H:i:s,如 2011-11-11 11:11:11 |
例子:
(
[event] => story::delete
[event_from] => web
[workspace_id] => 755
[id] => 1000000755500618867
[secret] =>
[created] => 2017-04-13 15:52:58
)
2
3
4
5
6
7
8
← 条件语法 获取角色ID对照关系 →