2

因此,我在 Contentful 仪表板中创建了一个 webhook,它会在发布或删除条目时触发,并且它可以正常工作。但是,我希望能够通过 Content Management JavaScript API 发布条目,而不触发 webhook。我可以采取什么措施使这成为可能吗?

4

1 回答 1

2

不幸的是,如果条目是通过 API 或 Web 应用程序直接发布的,则没有区别。Web 应用程序只是在底层调用 API。

可能的方法是检查 web 挂钩中已发布的条目并评估代码是否应该执行。可能通过直接通过 API 发布时设置隐藏字段。

例如,假设您有一个字段publishedThroughAPI,请确保该字段从交付 API 中省略并且不可编辑: 在此处输入图像描述

然后在通过 JavaScript API 发布之前将此字段设置为 true,并在您的 webhook 中检查此字段,如果该字段设置为 true,则只需退出钩子即可。

Webhook 将收到包含您发布的条目的有效负载。基本上与普通请求相同的有效负载,不同之处在于它将包含每个语言环境。下面是一个小例子:

{
   "sys": {
         //System meta data, created at, published at etc.
    },
   "fields": {
       //All fields of the entry.
       "title": {
            "en-US": "English title",
            "sv-SE": "Swedish title"
       },
       "publishedThroughAPI": {
            "en-US": true,
            "sv-SE": true
       }
   }
}
于 2017-06-06T06:45:55.793 回答