openclaw-channel-dingding-webhook-connections
v0.1.5
Published
OpenClaw channel: HTTP webhook in, DingTalk robot webhook out (dynamic webhook URL per request)
Maintainers
Readme
openclaw-channel-dingding-webhook-connections
OpenClaw 通道:外部服务 HTTP POST 把文本送进网关,Agent 回复按请求体里的钉钉 webhookUrl 发回群。
安装、更新与重启
openclaw plugins install openclaw-channel-dingding-webhook-connections
openclaw plugins update dingding-webhook-connections
openclaw gateway restart首次安装只需执行 install;已安装后要升级插件执行 update(二选一,不必每次都跑两条)。安装或更新插件、以及修改网关配置后,请执行 openclaw gateway restart,通道与 Webhook 才会按最新状态生效。
配置(Raw JSON)
在网关配置里切换到 Raw / 原始 JSON,把下面 channels.dingding-webhook-connections 合并进现有 JSON(勿删掉其它通道;没有 channels 时可在根上新增该键):
{
"channels": {
"dingding-webhook-connections": {
"channelAccessToken": "<access_token>"
}
}
}将 <access_token> 换成钉钉机器人的 access_token(与 Webhook URL 里 access_token= 后那一段相同)。请求头 x-channel-access-token 也传同一串,用于校验调用方。
HTTP 入口路径固定:/dingding-webhook-connections/webhook(不可配置)。
保存配置后执行:openclaw gateway restart
调用 Claw(POST)
URL: https://<网关>/dingding-webhook-connections/webhook
请求头: Content-Type: application/json;x-channel-access-token 的值须与配置里的 channelAccessToken 完全一致(直接传钉钉 access_token 即可)。
请求体: 下面 JSON 里 URL 中的 <access_token> 与配置、x-channel-access-token 为同一串;text 为送入 Agent 的文案。
{"schemaVersion":1,"event":"message.received","webhookUrl":"https://oapi.dingtalk.com/robot/send?access_token=<access_token>","text":"我正在测试自定义channel,请回复我你是谁以及服务环境,并提示当你收到这条信息就代表通道正常。"}webhookUrl 须为 https://oapi.dingtalk.com 且含 /robot/send。
请求体可选字段(与 schemaVersion / event / webhookUrl / text 并列):
| 字段 | 说明 |
|------|------|
| groupName | 字符串。传入时用作 Claw 侧群组/会话展示名(ConversationLabel / 群主题等);不传则使用默认 DingTalk:<短id>。 |
| atMobiles | 字符串数组。Agent 回复发到钉钉时,在消息里 @ 对应手机号(钉钉机器人 at.atMobiles)。 |
| atUserIds | 字符串数组。回复时 @ 对应 userid(at.atUserIds)。 |
| isAtAll | 布尔,true 时回复中 @所有人(须与机器人在群内权限一致)。 |
@ 参数仅作用于本轮入站之后 Agent 的回复;多段长文回复时仅在最后一段附带 at,避免重复打扰。
响应: 校验通过后立即返回 HTTP 200,body 为 {"ok":true,"accepted":true};入站消息在后台交给 Agent,HTTP 连接马上结束(避免长时间占用导致客户端超时重试、重复投递)。请勿依赖同步响应判断 Agent 是否已回复钉钉。
会话 key: 对 webhookUrl 生成 16 位十六进制短 peer id;出站回复依赖网关进程内缓存。若仅重启网关后要从控制台向旧会话发消息,需先再收到一条该 Webhook 的入站以刷新缓存。
快速测试(curl): 三处 <access_token> 换成同一实际值。
curl -X POST 'https://<网关>/dingding-webhook-connections/webhook' \
-H 'Content-Type: application/json' \
-H 'x-channel-access-token: <access_token>' \
-d '{"schemaVersion":1,"event":"message.received","webhookUrl":"https://oapi.dingtalk.com/robot/send?access_token=<access_token>","text":"我正在测试自定义channel,请回复我你是谁以及服务环境,并提示当你收到这条信息就代表通道正常。"}'钉钉加签
本插件出站不带钉钉加签参数;机器人若仅开启加签、未配关键词/IP 等,可能被钉钉拒收,请在钉钉侧增加自定义关键词等方式兼容。
