我正在使用asana API处理新应用
在我为项目创建webhook后,即使是最简单的任务,我也会收到太多事件
让我们来看一个例子: 我有一个项目,webhook接收到它上面发生的所有更新。
我在这个项目上创建了一个新任务,我收到的不是一个,不是两个,而是11个事件。
{
"events": [
{
"resource": 208671118519207,
"user": 50164104471653,
"type": "task",
"action": "changed",
"created_at": "2016-11-08T07:32:15.327Z",
"parent": null
},
{
"resource": 208671118519207,
"user": 50164104471653,
"type": "task",
"action": "changed",
"created_at": "2016-11-08T07:32:15.547Z",
"parent": null
},
{
"resource": 208671118519207,
"user": 50164104471653,
"type": "task",
"action": "changed",
"created_at": "2016-11-08T07:32:19.814Z",
"parent": null
},
{
"resource": 208671118519207,
"user": 50164104471653,
"type": "task",
"action": "changed",
"created_at": "2016-11-08T07:32:19.928Z",
"parent": null
},
{
"resource": 208671118519207,
"user": 50164104471653,
"type": "task",
"action": "changed",
"created_at": "2016-11-08T07:32:20.080Z",
"parent": null
},
{
"resource": 208671118519207,
"user": 50164104471653,
"type": "task",
"action": "changed",
"created_at": "2016-11-08T07:32:20.178Z",
"parent": null
},
{
"resource": 208671118519208,
"user": 50164104471653,
"type": "story",
"action": "removed",
"created_at": "2016-11-08T07:32:15.153Z",
"parent": 208671118519207
},
{
"resource": 208720288746880,
"user": 50164104471653,
"type": "story",
"action": "added",
"created_at": "2016-11-08T07:32:15.332Z",
"parent": 208671118519207
}
]
}
过了一会儿,我收到了这个:
{
"events": [
{
"resource": 116224991348154,
"user": 50164104471653,
"type": "project",
"action": "changed",
"created_at": "2016-11-08T07:32:20.556Z",
"parent": null
},
{
"resource": 208671118519211,
"user": 50164104471653,
"type": "task",
"action": "added",
"created_at": "2016-11-08T07:32:20.520Z",
"parent": 116224991348154
},
{
"resource": 208671118519212,
"user": 50164104471653,
"type": "story",
"action": "added",
"created_at": "2016-11-08T07:32:20.550Z",
"parent": 208671118519211
}
]
}
我理解事件冒泡和任务中的事件也会触发父项目中的事件,我也理解每个事件也会产生“故事”事件,但我不明白的是我们为什么有太多“任务改变”事件?
是错误还是功能?或者我做错了吗?
如果我想为每个任务更改只获得一个事件,我该怎么办?
另一个问题。有时我会收到没有任何用户ID的任务事件,如下所示:
{
"events": [
{
"resource": 207890837706528,
"user": null,
"type": "task",
"action": "changed",
"created_at": "2016-11-08T07:16:19.270Z",
"parent": null
}
]
}
没有用户ID的事件意味着什么?
由于
答案 0 :(得分:3)
Asana dev在这里。你纠正我们发送太多事件 - 我们在那里有点过分热心。其中一些是由于您已经认识到的因素 - 事件冒泡,添加到任务中的故事等等。但是,我不希望看到许多"任务改变"事件......你是在UI中创建的吗?如果您正在键入名称/备注,它肯定会发送事件,而不是每次击键,但每隔几秒钟也许?由于Asana应用程序具有反应性,因此我们还没有找到一个我们为合并更改事件而感到满意的解决方案 - 它会在您键入时不断发送更新,并且每个都显示为"编辑&#34 ;事件
对于没有用户的事件,当系统发生某些事情时会发生这种情况 - 例如,如果任务通过自动重复发生而重复出现。
我们目前没有计划对此进行更改 - 从长远来看,我们可能会添加新类型的事件。现在它基本上只是每次模型以任何方式改变时的消防,加上添加/删除事件。