【问题标题】:Missing external_id in item.update web hook eventitem.update webhook 事件中缺少外部 ID
【发布时间】:2017-11-10 12:27:49
【问题描述】:

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

item.update:更新项目时。提供参数“item_id”、“item_revision_id”和“external_id”。

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

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

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

【问题讨论】:

    标签: webhooks podio


    【解决方案1】:

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

    因此,如果您只是从 Podio 网站创建项目,则该项目不会有任何 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
    

    【讨论】:

      【解决方案2】:

      我认为 Podio 不提供带有挂钩数据的 external_id。您应该做的是再次调用“Get item revision difference”,并将 item_revision_id 作为 revision_to_id。这将为您提供当前的修订详细信息。您可以在此响应中找到 external_id 和 field_id。

      【讨论】:

      • 谢谢 - 我猜文档已经过时了。
      【解决方案3】:

      我们可以注册一个仅针对特定字段触发的挂钩,而不是接收 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'
      

      ...它返回 hook_id,然后您可以像往常一样验证该钩子。

      通过:https://stackoverflow.com/a/39782472/154248

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多