0

我正在使用 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 的事件是什么意思?

谢谢

4

1 回答 1

3

体式开发在这里。你说得对,我们发送了太多事件——我们在这方面有点过分热心。其中一些是由于您已经认识到的因素 - 事件冒泡,添加到任务中的故事等。但是,我不希望看到很多“任务更改”事件......你是在创建它吗?用户界面?如果您正在输入名称/注释,它肯定会发送事件,不是每次击键,而是每隔几秒钟?我们还没有找到一个我们对合并更改事件感到满意的解决方案,因为 Asana 应用程序是反应式的 - 它会在您键入时不断发送更新,并且每个更新都显示为“编辑”事件。

至于没有用户的事件,当系统发生某些事情时会发生这种情况 - 例如,如果任务通过自动重复而重复。

我们目前没有对此进行更改的计划 - 从长远来看,我们可能会添加新类型的事件。现在,它基本上只是每次模型以任何方式更改时的消防软管,加上添加/删除事件。

于 2016-11-08T13:38:51.823 回答