因此,我在 Contentful 仪表板中创建了一个 Webhook,该 Webhook 在发布或删除条目时触发,并且它按预期工作。但是,我希望能够通过内容管理 JavaScript API 发布条目,而不触发 webhook。我可以采取什么措施来实现这一目标吗?
最佳答案
遗憾的是,如果条目是通过 API 或直接通过 Web 应用程序发布,则没有任何区别。 Web 应用程序只需在后台调用 API。
可能的是检查网络 Hook 中已发布的条目并评估代码是否应该执行。也许可以在直接通过 API 发布时设置隐藏字段。
例如,假设您有一个字段 publishedThroughAPI
,您确保该字段在交付 API 中被省略且不可编辑:
然后在通过 JavaScript API 发布之前将此字段设置为 true,并在 Webhook 中检查此字段,如果该字段设置为 true,则只需从 Hook 中返回即可。
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
}
}
}
关于javascript - Contentful:使用 Content Management API 时防止触发 Webhook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44380971/