logo
4
0
WeChat Login
largezhou<largezhou@tencent.com>
完善文档

@largezhou/ddingtalk

English

OpenClaw 钉钉(DingTalk)渠道插件,使用 Stream 模式接入企业机器人。

功能特点

  • Stream 模式:无需公网 IP 和域名,开箱即用
  • 私聊/群聊:支持私聊,群聊(仅@机器人)
  • 文本消息收发:接收和发送文本消息
  • Markdown回复:机器人回复 Markdown 格式
  • 图片消息收发:接收用户发送的图片,支持发送本地/远程图片
  • 语音、视频、文件、图文混排:接收用户发送语音、视频、文件、图文混排消息
  • 回复文件:支持回复文件,音频、视频等统一按文件发送(按语音、视频发送,需要获取时长、视频封面,以后再支持)
  • 主动推送消息:支持主动推送消息,可以配置提醒或定时任务
  • 支持OpenClaw命令:支持 /new、/compact 等 OpenClaw 官方命令

安装

openclaw plugins install @largezhou/ddingtalk

快速开始

添加钉钉渠道有两种方式:

方式一:通过安装向导添加(推荐)

如果您刚安装完 OpenClaw,可以直接运行向导,根据提示添加钉钉:

openclaw onboard

向导会引导您完成:

  1. 创建钉钉应用机器人并获取凭证
  2. 配置应用凭证
  3. 启动网关

完成配置后,您可以使用以下命令检查网关状态:

  • openclaw gateway status - 查看网关运行状态
  • openclaw logs --follow - 查看实时日志

方式二:通过命令行添加

如果您已经完成了初始安装,可以用以下命令添加钉钉渠道:

openclaw channels add

然后根据交互式提示选择 DingTalk,输入 AppKey (Client ID) 和 AppSecret (Client Secret) 即可。

完成配置后,您可以使用以下命令管理网关:

  • openclaw gateway status - 查看网关运行状态
  • openclaw gateway restart - 重启网关以应用新配置
  • openclaw logs --follow - 查看实时日志

第一步:创建钉钉应用

1. 打开钉钉开发者平台

访问 钉钉开发者平台,使用钉钉账号登录,选择组织进入。

2. 创建应用

  1. 点击右上角 创建应用
  2. 填写应用名称和描述,上传图片(可选)

创建应用

3. 获取应用凭证

在应用的 凭证与基础信息 页面,复制:

  • Client ID(格式如 dingxxxx
  • Client Secret

重要:请妥善保管 Client Secret,不要分享给他人。

获取应用凭证

4. 添加应用机器人

  1. 在应用的 添加应用能力 页面,选择 机器人,点击添加

添加机器人

  1. 输入机器人相关信息,消息接收模式 选择 Stream 模式,然后保存

配置机器人

配置机器人消息接收模式

5. 配置应用权限

在应用的权限管理中,确保开通以下权限:

  • 企业内机器人发送消息权限
  • 根据 downloadCode 获取机器人接收消息的下载链接(用于接收图片)

6. 发布机器人

创建机器人版本,填入版本号、描述、应用可用范围,点击保存,点击确认发布。

创建机器人版本

编辑版本


第二步:配置 OpenClaw

通过向导配置(推荐)

运行以下命令,根据提示选择 DingTalk,粘贴 AppKey (Client ID) 和 AppSecret (Client Secret):

openclaw channels add

通过配置文件配置

编辑 ~/.openclaw/openclaw.json

{ "channels": { "ddingtalk": { "enabled": true, "clientId": "your_app_key", "clientSecret": "your_app_secret", "allowFrom": ["*"] } } }

allowFrom 白名单

allowFrom 控制哪些用户可以与机器人交互并执行命令:

  • 默认值["*"](不配置的情况下,默认允许所有人)
  • 指定用户:填入钉钉用户的 staffId,只有白名单内的用户才能使用命令(如 /compact/new 等),白名单外的用户消息会被忽略
  • allowFrom[0] 同时作为主动推送消息(openclaw send)的默认目标
{ "allowFrom": ["用户ID_1", "用户ID_2"] }

第三步:启动并测试

1. 启动网关

openclaw gateway --verbose

2. 发送测试消息

在钉钉中找到您创建的机器人,即可正常对话。

钉钉对话


Demo

项目包含独立的 demo 示例,可以脱离 OpenClaw 框架单独测试钉钉机器人:

# 配置环境变量 cp .env.example .env # 编辑 .env 填入 CLIENT_ID 和 CLIENT_SECRET # 运行 demo pnpm run demo

开发

# 安装依赖 pnpm install # 打包 pnpm pack

参考文档

License

MIT