微信支持了 ClawBot,我修改了下让它能支持 Claude Code

3 月 23 日
 dcatfly

喜大普奔,微信终于给机器人开了个口子。

我对 openclaw 不是很感兴趣,因为感觉 claude code 更适合我,但微信支持 clawbot 意味着终于给机器人开了个小口,虽然还有限制,但总算不用担心封号了。

官方库没有 github 链接,但 npm 的包 中就是源码,整体实现非常简洁:

  1. 扫码登录 —— 调用 iLink Bot API 获取二维码,用户微信扫码确认后拿到 bot_token
  2. 收消息 —— Long-poll 轮询 getUpdates 接口,有新消息就返回;媒体通过 CDN 下载后 AES-128-ECB 解密
  3. 发消息 —— 文本直接调 sendMessage;媒体则先加密上传 CDN ,再把引用发出去
  4. 会话令牌 —— 每条消息带一个 contextToken,回复时必须原样回传

整条链路都是调接口,全靠 iLink Bot API 做中转。

我基于官方的代码改了一版,通过 claude code 的 channel 功能,让微信的 clawbot 可以支持 claude code 接入,需要的老哥自取: https://github.com/Dcatfly/weixin_claude_code ,也欢迎大家提 pr 和 issue 。

3171 次点击
所在节点    分享创造
12 条回复
qingyun1988
3 月 23 日
速度真快啊!我特别好奇,它的接口不是传入腾讯的服务器么?那怎么能跟 claude 通讯呢。我大概明白了,腾讯服务器通讯是跟配置了 ibo 的本地电脑通讯,只要让 claude 和本地那个微服务上就可以了。
git00ll
3 月 23 日
哇这个是不是可以包装成微信机器人了,以后消息推送不用企微了
dcatfly
3 月 23 日
@qingyun1988 是的,相当于微信开了一个中转通道,在本地轮询可以拿到用户发送的消息,再通过发送消息的接口把 claude code 的消息发送给用户。实现其实简单,只是微信以前不支持 bot
dcatfly
3 月 23 日
@git00ll 自己用是这样的,方便很多。现在比较大的限制是微信开的口子同一时间只接受一个绑定,如果你有多个项目要推送消息,就还需要一个中间层做转发。
tianhehechu
3 月 23 日
@git00ll 你可别瞎搞,很多方便用户的接口,都是被你们这种人滥用给搞没的。有点职业道德吧。
ooooo00000ooooo
3 月 23 日
--dangerously-load-development-channels ignored (plugin:weixin-claude-code@dcatfly-plugins)
Channels are not currently available
back0893
3 月 23 日
终于还是开了口子 真的要感谢 claw 火爆
dcatfly
3 月 23 日
@ooooo00000ooooo 是不是用的 api key?
leadfast
3 月 23 日
> 每条消息带一个 contextToken ,回复时必须原样回传

就是屏蔽掉了主动发消息的可能了?
dcatfly
3 月 23 日
@leadfast
如果会话是空的,用户从来没有发送过消息,那么从代码上看 agent 侧是不能主动发消息的;
但如果用户发过了消息,那么 contextToken 可以使用多次。即后续 agent 可以主动发消息,长消息分片也是这么做的,不过不确定微信内部是否有对 contextToken 有其他维度的限制
ooooo00000ooooo
3 月 24 日
@dcatfly 是,应该是这个原因不行的。
dcatfly
3 月 24 日
@ooooo00000ooooo #11 channel 官方不支持 api key ,不过这个限制可以通过改 claude code 代码的方式去除,我看到隔壁有人写了脚本,需要的话可以试下: https://gist.github.com/Dcatfly/643b9c84ff24e27957ccf6ec981c956f

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1200244

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX