item.update 网络挂钩事件中缺少 external_id

Missing external_id in item.update web hook event

我们没有看到 item.update webhook 中包含外部 ID。 The documentation 说我们应该包括在内:

item.update: When an item is updated. Provides parameter "item_id", "item_revision_id" and "external_id".

我们确实看到(通过 requestbin)的参数是:

item_id: 12345
hook_id: 9875
type: item.update
item_revision_id: 2

我们需要做什么才能让 external_id 包含在 webhook 事件中?还是我误读了文档?

我不认为跑道提供 external_id 挂钩数据。你应该做的是用 item_revision_id 作为 revision_to_id 再调用 'Get item revision difference'。这将为您提供当前修订的详细信息。您可以在此回复中找到 external_id 和 field_id。

我们可以注册一个仅针对特定字段触发的挂钩,而不是接收 external_id。这样,触发的 URL 可以对涉及的 external_id 进行编码。

问题是您不能从管理界面执行此操作,但可以从 API。例如,使用 HTTPie,如果我们有一个 id 为 123 的字段...

 http POST https://api.podio.com/hook/app_field/123/ \
    url=http://your.endpont/123 
    type=item.update 
    'Authorization: OAuth2 token-here'

...returns 和 hook_id,您将像往常一样验证挂钩。

通过:

Podio 文档是最新的,external_id 参数已发送给 item.createitem.update 挂钩。为了发送它,项目需要有它:)

因此,如果您只是从跑道网络创建项目,该项目将没有任何 external_id。但是如果你通过 API 创建项目并指定 external_id 那么它就会在那里。 这是 Ruby:

中的完整示例
attr = {:fields => { :title => 'Created with external ID'},
        :external_id => 'exernal_id_for_demo' }
item = Podio::Item.create(app_id, attr)

然后 webhook item.create 将是:

item_id: 720040614
item_revision_id: 0
type: item.create
hook_id: 7243151
external_id: exernal_id_for_demo