如何为Everhour API触发的webhook返回自定义头解决触发失败问题
Everhour Webhook 不触发问题排查方案
第一阶段:验证webhook注册有效性
- 调用Everhour的webhook列表查询接口,确认你创建的webhook是否在返回列表中,状态是否为已激活
- 检查注册时的事件类型是否正确,必须包含
project:create这类项目创建对应事件,不要漏选事件范围 - 确认注册时传入的Pipedream地址拼写完全正确,没有多余的斜杠、空格或者转义字符
第二阶段:验证Everhour握手校验是否通过
- Everhour在webhook注册完成后会立即发送一次校验请求到Pipedream地址,要求返回头必须包含
X-Hook-Secret,值要和你注册webhook时传入的secret完全一致 - 检查Pipedream的请求日志,看是否收到过Everhour的校验请求:
- 如果没收到:说明注册请求失败,或者Everhour请求被Pipedream的安全规则拦截,检查Pipedream的webhook是否设为公开可访问,没有IP白名单限制
- 如果收到了:检查返回头的
X-Hook-Secret是否正确,注意头名不要有多余空格,避免和官方要求的字段名不匹配
- 校验失败的webhook会被Everhour自动标记为失效,不会推送后续事件
第三阶段:验证Pipedream配置正确性
- 检查Pipedream的响应逻辑是否对所有请求都返回
X-Hook-Secret头,不要只对特定路径/请求方法返回 - 检查Pipedream的响应状态码是否为200,Everhour会把非200的响应视为校验失败
- 手动用Postman/curl向你的Pipedream地址发请求,查看返回头是否符合要求,示例curl命令:
curl -v 你的Pipedream地址
查看返回的Headers段是否有正确的X-Hook-Secret字段
第四阶段:触发事件测试
- 先在Everhour后台手动创建一个测试项目,查看Everhour的webhook推送日志,看是否有推送失败的记录
- 同时查看Pipedream的实时请求日志,看是否有请求进入
- 如果Everhour提示推送失败,Pipedream没收到请求:检查是否有防火墙、CDN拦截了Everhour的出站请求
- 如果Everhour提示推送成功,Pipedream没收到:检查Pipedream地址是否正确,是否有路由规则丢弃了请求
第五阶段:替换测试缩小问题范围
- 临时用公开webhook测试地址替换Pipedream地址,重新注册webhook,创建测试项目看是否能收到请求:
- 能收到:说明问题出在Pipedream配置,重点排查Pipedream的响应头、访问权限、路由规则
- 收不到:说明问题出在Everhour侧的webhook注册或者事件配置,重新核对注册接口的参数是否符合官方要求
内容的提问来源于stack exchange,提问作者icedev
相关产品推荐
相关产品推荐

