在个人微信使用 OpenClaw 的教程(不封号)

2026-04-11 13:321阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

企业微信自建应用(可在个人微信使用)

项目基于 BytePioneer-AI/moltbot-china: Clawdbot/OpenClaw中国插件:支持飞书,钉钉,QQ,企业微信 开发的额外插件,支持企业微信自建应用

github.com

GitHub - RainbowRain9/openclaw-china: Clawdbot/OpenClaw中国插件:支持飞书,钉钉,QQ,企业微信

Clawdbot/OpenClaw中国插件:支持飞书,钉钉,QQ,企业微信

效果如图

2bf52e5261bd2cf0544a885b26f8b9371440×2988 173 KB 5e545c710d5be052e49edd3673966e931440×2988 120 KB
0e803514207a767eec3a1d8732479eb91440×2988 303 KB 1cf834ccb42ef52dd67d89739bb8b2651440×2988 230 KB

教程如下


企业微信自建应用配置指南

本指南帮助你在企业微信中创建自建应用,并配置 OpenClaw 接入。

自建应用 vs 智能机器人

功能 智能机器人 (wecom) 自建应用 (wecom-app)
被动回复消息
主动发送消息
需要企业认证
需要 corpSecret
需要 IP 白名单
配置复杂度 简单 中等

推荐使用自建应用的场景

  • 需要主动推送消息给用户
  • 需要更灵活的消息发送能力
  • 需要调用企业微信 API

前置条件

  1. 一个企业微信账号(可使用个人注册的企业)
  2. 公网可访问的 HTTPS 服务器(用于接收回调)
  3. OpenClaw 已安装并运行
  4. Node.js 和 pnpm(用于构建插件)

步骤零:安装 wecom-app 插件

1. 克隆代码仓库

cd ~/.openclaw/extensions git clone https://github.com/RainbowRain9/openclaw-china.git

2. 进入插件目录并安装依赖

cd ~/.openclaw/extensions/openclaw-china/extensions/wecom-app pnpm install

3. 构建插件

pnpm build

4. 安装到 OpenClaw

openclaw plugins install -l ~/.openclaw/extensions/openclaw-china/extensions/wecom-app

提示-l 参数表示链接模式安装,修改源码后无需重新安装,只需重启 Gateway 即可生效。

5. 验证安装

openclaw plugins list

确认 @openclaw-china/wecom-app 出现在插件列表中。


步骤一:创建自建应用

1. 登录企业微信管理后台

访问 企业微信管理后台 并登录。

2. 创建应用

  1. 点击左侧菜单「应用管理」

  2. 在「自建」区域点击「创建应用」

    image2503×1384 222 KB

  3. 填写应用信息:

    • 应用名称:例如 “AI 助手”
    • 应用 logo:上传一个图标
    • 可见范围:选择可以使用该应用的部门/成员

    image2503×1384 164 KB

  4. 点击「创建应用」

3. 获取应用凭证

创建成功后,进入应用详情页,记录以下信息:

  • AgentId:应用的唯一标识(如 1000002
  • Secret:点击查看获取(这就是 corpSecret

image2503×1384 242 KB

4. 获取企业 ID

  1. 点击左侧菜单「我的企业」
  2. 在「企业信息」页面底部找到「企业 ID」
  3. 记录这个 ID(这就是 corpId

image2503×1384 210 KB


步骤二:配置接收消息服务器

1. 进入应用设置

  1. 在应用详情页,找到「接收消息」设置
  2. 点击「设置 API 接收」

2. 填写服务器配置

  • URL:你的公网回调地址,例如 https://your.domain/wecom-app
  • Token:自定义一个字符串,例如 your-random-token
  • EncodingAESKey:点击「随机获取」生成 43 位字符

image2503×1384 221 KB

重要:先配置好 OpenClaw,再点击「保存」,否则验证会失败。

image2503×1384 217 KB

3. 配置 IP 白名单

在应用详情页的「企业可信 IP」设置中,添加你服务器的公网 IP 地址。

image2503×1384 231 KB

如果不知道服务器 IP,可以先尝试发送消息,查看错误日志获取 IP。


步骤三:配置 OpenClaw

使用命令行配置

Linux/macOS

openclaw config set channels.wecom-app '{ "enabled": true, "webhookPath": "/wecom-app", "token": "your-random-token", "encodingAESKey": "your-43-char-encoding-aes-key", "corpId": "your-corp-id", "corpSecret": "your-app-secret", "agentId": 1000002 }' --json

Windows CMD

openclaw config set channels.wecom-app.enabled true openclaw config set channels.wecom-app.webhookPath /wecom-app openclaw config set channels.wecom-app.token your-random-token openclaw config set channels.wecom-app.encodingAESKey your-43-char-encoding-aes-key openclaw config set channels.wecom-app.corpId your-corp-id openclaw config set channels.wecom-app.corpSecret your-app-secret openclaw config set channels.wecom-app.agentId 1000002

或直接编辑配置文件

编辑 ~/.openclaw/openclaw.json

{ "channels": { "wecom-app": { "enabled": true, "webhookPath": "/wecom-app", "token": "your-random-token", "encodingAESKey": "your-43-char-encoding-aes-key", "corpId": "your-corp-id", "corpSecret": "your-app-secret", "agentId": 1000002 } } }

配置说明

字段 必填 说明
enabled 是否启用该渠道
webhookPath 回调路径,需与企业微信后台配置一致
token 消息校验 Token,需与企业微信后台配置一致
encodingAESKey 消息加密密钥(43 位),需与企业微信后台配置一致
corpId 企业 ID
corpSecret 应用的 Secret
agentId 应用的 AgentId
welcomeText 用户首次进入时的欢迎语
inboundMedia.enabled 是否启用入站媒体落盘(默认启用)
inboundMedia.dir 入站媒体归档目录(跨平台默认:~/.openclaw/media/wecom-app/inbound
inboundMedia.maxBytes 单个入站媒体最大字节数(默认 10MB)
inboundMedia.keepDays 入站媒体保留天数(默认 7 天;用于自动清理)

步骤四:重启 Gateway

openclaw gateway restart


步骤五:验证配置

1. 回到企业微信后台保存配置

现在 OpenClaw 已启动,回到企业微信后台的「接收消息」设置,点击「保存」。

如果配置正确,会提示保存成功。

2. 测试消息收发

  1. 在企业微信 App 中打开你创建的应用
  2. 发送一条消息
  3. 查看 OpenClaw 日志确认消息接收
  4. 等待 AI 回复

步骤六:在个人微信使用

1.回到企业微信后台

回到企业微信后台的「我的企业」设置下的微信插件

image2503×1384 243 KB

用个人微信扫码「邀请关注」的二维码就可以在个人微信上打开入口


入站媒体(图片/语音/文件)落盘说明

为了支持图片 OCR、回发原图、以及排查问题,wecom-app 会把入站媒体文件落盘保存。

  • 文件会被归档到:inboundMedia.dir/YYYY-MM-DD/

  • 消息正文里会显示:[image] saved:<本地路径>(该路径为稳定归档路径,便于后续处理)

  • 自动清理由 inboundMedia.keepDays 控制(默认 7 天)

为什么还会用 tmp 中转?

内部会先下载到系统临时目录,再原子移动到归档目录,以避免“半文件/下载失败”污染归档目录。

跨平台默认路径

  • Linux/macOS:~/.openclaw/media/wecom-app/inbound

  • Windows:%USERPROFILE%\.openclaw\media\wecom-app\inbound

如需自定义,请设置:channels.wecom-app.inboundMedia.dir


常见问题

Q: Unknown target “xxx” / Action send requires a target?

这类问题通常不是“权限问题”,而是 target 写法不正确 或 OpenClaw 无法解析。

结论:最稳的写法是使用显式前缀

  • 私聊用户:user:<UserId>(例如:user:CaiHongYu
  • 群聊:chatid:<ChatId>(如果你拿到了 chatid)

排查步骤

  1. 确认你用的是 user: / chatid: 前缀,而不是“显示名/昵称”。
  2. 如果你只有显示名:优先去企业微信后台/通讯录确认真实 UserId
  3. 查看 Gateway 日志中 wecom-app 的目录解析输出(关键词一般为 wecom-app / directory / target)。

经验:显示名在不同租户/同名用户/大小写场景下会导致解析失败;用 user:<UserId> 基本不会错。

Q: 为什么 SVG 发出去不是图片?

企业微信自建应用对 图片消息 的支持通常偏向 png/jpgsvg 经常会被客户端当作“文件”,或者走图片通道失败。

  • 建议:发送 png/jpg
  • 如果你必须发 svg:把它当 文件 发(本插件已对 .svg 强制按文件发送,避免误判)。

Q: 为什么 WAV/MP3 语音发不出去(ok=false)?

企业微信的“语音消息(voice)”通常要求 amr/speex 等格式;wav/mp3 很常见会导致上传/发送失败,或无法按语音气泡展示。

推荐方案(自动兜底)

开启 voiceTranscode.enabled=true 后:

  • 系统存在 ffmpeg:遇到 wav/mp3 会 自动转码为 amr 再发送 voice
  • 没有 ffmpeg:会 自动降级为 file 发送(保证可达)

配置示例(openclaw.json):

{ "channels": { "wecom-app": { "voiceTranscode": { "enabled": true, "prefer": "amr" } } } }

手动转码(ffmpeg)

ffmpeg -i in.wav -ar 8000 -ac 1 -c:a amr_nb out.amr

Q: 保存配置时提示验证失败?

  1. 检查 OpenClaw 是否已启动并监听正确端口
  2. 确认 webhookPath 与后台 URL 路径一致
  3. 确认 tokenencodingAESKey 与后台配置完全一致
  4. 确认服务器公网可访问(可用 curl 测试)

Q: 消息接收成功但发送失败?

  1. 检查 corpIdcorpSecretagentId 是否正确
  2. 检查是否已配置 IP 白名单
  3. 查看 OpenClaw 日志获取详细错误信息

Q: 如何获取服务器 IP 地址?

运行以下命令:

curl ifconfig.me

或查看 OpenClaw 发送消息的错误日志,企业微信会返回需要添加白名单的 IP。

Q: Token 和 EncodingAESKey 可以自己生成吗?

  • Token:可以是任意字符串
  • EncodingAESKey:必须是 43 位的 Base64 字符,建议使用企业微信后台的「随机获取」功能

高级配置

访问控制

{ "channels": { "wecom-app": { "enabled": true, "dmPolicy": "open", "groupPolicy": "open", "requireMention": false, "allowFrom": [], "groupAllowFrom": [] } } }

字段 说明
dmPolicy 私聊策略:open(任何人)/ allowlist(白名单)
groupPolicy 群聊策略:open(任何群)/ allowlist(白名单)/ disabled(禁用)
requireMention 群聊是否需要 @机器人
allowFrom 私聊白名单用户 ID 列表
groupAllowFrom 群聊白名单群 ID 列表

多账户配置

如需配置多个自建应用,可以使用 accounts 对象(键为账户 ID):

{ "channels": { "wecom-app": { "enabled": true, "accounts": { "app1": { "webhookPath": "/wecom-app-1", "token": "token-1", "encodingAESKey": "key-1", "corpId": "corp-id", "corpSecret": "secret-1", "agentId": 1000002 }, "app2": { "webhookPath": "/wecom-app-2", "token": "token-2", "encodingAESKey": "key-2", "corpId": "corp-id", "corpSecret": "secret-2", "agentId": 1000003 } } } } }


(可选)安装 wecom-app 运维/使用 Skill

本仓库提供本地技能包:extensions/wecom-app/skills/wecom-app-ops,用于指导 wecom-app 常见操作(如何获取/规范化 target、如何回发图片/录音/文件、如何使用 saved 路径做 OCR、常见报错排障等)。

安装到全局

mkdir -p ~/.openclaw/skills cp -a ~/.openclaw/extensions/openclaw-china/extensions/wecom-app/skills/wecom-app-ops ~/.openclaw/skills/

复制后一般无需重启网关;如果你希望立刻出现在“可触发 skills 列表”里,建议重启一次 Gateway 以刷新 skills 索引。


wecom-app 已实现功能清单(Feature List)

本插件当前已实现/覆盖:

入站(接收消息)

  • Webhook 接收回调

  • 签名校验 + 解密/加密回包

  • 支持 JSON + XML 两种入站格式

  • 长文本分片(企业微信单条约 2048 bytes 限制)

  • stream 占位/刷新(为适配企业微信 5 秒响应限制的缓冲式输出)

入站媒体(产品级留存)

Why / 设计动机

  • 产品化目标是“消息里的 saved: 路径可长期复用”,而不是依赖 /tmp 这类易被清理的短期目录。

  • 这样 OCR/MCP、二次回发、归档/审计等流程才不会因为文件丢失而不稳定。

  • 支持 image / voice / file / mixed

  • 优先通过 MediaId 下载媒体;必要时回退 URL(如图片 PicUrl)

  • 媒体落盘:先 tmp 中转,再归档到 inboundMedia.dir/YYYY-MM-DD/

  • 消息体注入稳定路径:[image] saved:/... / [voice] saved:/... / [file] saved:/...

  • 过期清理:按 inboundMedia.keepDays 延迟清理(避免“回复后立刻删”导致 OCR/回发失败)

  • 大小限制:按 inboundMedia.maxBytes 限制单文件大小

出站(主动发送)

  • 支持主动发送文本

  • 支持主动发送媒体(按 MIME/扩展名识别 image/voice/file)

  • Markdown 降级:stripMarkdown() 将 Markdown 转为企业微信可显示的纯文本

目标解析与路由

  • 支持多种 target 输入格式:

  • wecom-app:user:<id> / wecom-app:group:<id>

  • user:<id> / group:<id>

  • 裸 id(默认当 user)

  • xxx@accountId(带账号选择)

多账号与策略

  • 支持 defaultAccount + accounts 多账号

  • DM 策略:dmPolicy(open/pairing/allowlist/disabled)

  • 群策略:groupPolicy(open/allowlist/disabled)

  • 群 @ 要求:requireMention

  • allowlist:allowFrom / groupAllowFrom

  • 入站媒体配置:inboundMedia.enabled/dir/maxBytes/keepDays


github.com

GitHub - RainbowRain9/openclaw-china: Clawdbot/OpenClaw中国插件:支持飞书,钉钉,QQ,企业微信

Clawdbot/OpenClaw中国插件:支持飞书,钉钉,QQ,企业微信

都看到最后了,希望可以点个小或者给我的项目点个

网友解答:
--【壹】--:

前面在公司github看到了这个项目,还想着把现有的换成这个集成,没想到下班就刷到佬友的帖子了,感谢佬友


--【贰】--: 彩虹雨:

wecom-app

wecom-app有点难搞,还必须有个公网回调地址


--【叁】--:

要有一个公网ip地址做回调


--【肆】--:

某动物:你等着,马上叫一群律师给你函


--【伍】--:

一般来说配 OpenClaw 的人都会有一个自己的公网ip吧。


--【陆】--:

Mark


--【柒】--:

感谢分享


--【捌】--:

企业微信相对安全一些,微信别碰。

当然,都是玄学


--【玖】--:

mairk一下


--【拾】--:

需要配置API吗


--【拾壹】--:

这是用的官方渠道。没有用hook之类的特殊手段,应该没事吧


--【拾贰】--: 彩虹雨:

pnpm(用于构建插件)

以前创建的企业微信应用不需要配置可信IP,现在的都要了


--【拾叁】--:

感谢大佬教程


--【拾肆】--:

这居然是佬友写的好厉害


--【拾伍】--:

个人会不会容易封号,之前玩的那个部署到微信的AI,玩了几天差点被封(


--【拾陆】--:

企业微信? 个人用户怎么弄?


--【拾柒】--:

谢谢佬友分享


--【拾捌】--:

去企业微信随便创建一下就行,不用认证


--【拾玖】--:

前排围观支持一下!