Dify Webhooks实战:外部事件通知接收方法

2026-06-13阅读 0热度 0
其他

利用Webhook机制,Dify能够实时监听外部系统事件——例如GitHub代码提交时自动触发AI处理流程,或CRM中新增客户后立即执行后续操作。核心在于为Dify配置一个可验证的HTTP端点,使其安全接收并解析外部结构化数据。实现过程涉及几个关键环节,下面逐一拆解。

本质上,这等同于为Dify创建一个可验证的HTTP端点,用于与外部系统建立安全握手。以下为分步配置指南。

创建入站Webhook应用:为Dify配置外部事件接收器

登录Dify控制台,在应用列表点击“+新建应用”,选择“空白应用”,命名后点击“创建”。该步骤为Dify建立一个专用接收端点,用于监听外部事件。

创建完成后,进入左侧导航“设置”→“API密钥”,点击“生成新密钥”,务必立即复制并安全存储。此密钥是后续HMAC签名验证的唯一凭证,丢失后无法恢复,需谨慎保管。

返回应用首页,点击右上角“发布”,在弹出面板切换至“Webhook”标签,启用Webhook开关,点击“复制URL”获取唯一入站地址。该URL格式类似:https://api.dify.ai/v1/webhooks/abc123,即Dify对外暴露的接收端点。

配置外部系统:规范请求格式与签名验证

外部系统向Dify发送请求时需遵循以下规范:使用POST方法;请求体为UTF-8编码的JSON;JSON必须包含event(事件类型)和payload(业务数据)两个字段。示例如下:

{ "event": "github.push", "payload": { "repository": "my-app", "branch": "main", "commits": 3 } }

此外,请求需携带X-Dify-Signature请求头,其值通过HMAC-SHA256算法计算:以API密钥为secret,对原始JSON字符串进行哈希,再经base64编码。缺少签名或验证失败的请求将被Dify返回401状态码拒绝。

使用curl测试时,参考以下命令模板:

curl -X POST https://api.dify.ai/v1/webhooks/abc123 \
-H "Content-Type: application/json" \
-H "X-Dify-Signature: sha256=xxxxxx" \
-d '{"event":"test","payload":{"id":123}}'

绑定事件与工作流:建立事件驱动触发链

完成通道配置后,需将具体事件与工作流关联,实现自动化触发。

首先,在Dify应用中创建至少包含“开始节点”和“大模型节点”的工作流。工作流是事件触发后实际执行的逻辑单元。

接着,进入“设置”→“Webhook”页面,在“事件类型”下拉框中选择外部系统发送的event值(如github.push)。点击右侧“绑定工作流”,选择已创建的工作流并保存。这样Dify便会在接收到匹配事件时自动启动该工作流。

当Dify接收到匹配event的请求后,自动将完整JSON载荷注入工作流上下文。你可在工作流提示词中使用{{payload.repository}}{{event}}引用对应字段。若外部请求的event值未在下拉列表中,则请求被忽略,不触发任何流程。

注意:绑定操作不可逆。如需修改事件类型,必须先解绑再重新绑定,无法直接覆盖。

验证请求到达:日志与调试方法

配置完成后,可通过以下方法验证Dify是否成功接收请求并触发工作流:

方法一:在Dify应用“监控”→“日志”页面,筛选“webhook”关键词,检查是否存在状态码200的记录及解析出的payload内容。有记录表示接收成功,否则请求未到达。

方法二:在工作流中添加“调试输出”节点,输入{{payload}}并运行,检查输出是否为预期JSON。此方法可直观验证数据传递准确性。

方法三:使用Postman等工具发送带正确签名的请求,观察响应体。若返回{"status":"success","run_id":"xxx"},则表明Dify已接受请求并启动工作流,配置有效。

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策