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