内容丰富:使用Content Management API时,防止webhook触发

时间:2017-06-06 03:32:11

标签: javascript php contentful contentful-management

所以我在Contentful仪表板中创建了一个webhook,当条目发布或删除时触发,并且它可以正常工作。但是,我希望能够通过Content Management JavaScript API发布条目,而不会触发webhook。我可以采取哪些措施来实现这一目标吗?

1 个答案:

答案 0 :(得分:2)

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

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

例如,假设您有一个字段publishedThroughAPI,请确保此字段在传递API中被省略且不可编辑: enter image description here

然后在通过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
       }
   }
}