V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
0x01Dev
V2EX  ›  程序员

[开源] 给微信 Bot 做了个 App Store:装一个查股票,装一个生成图片,装一个 AI 聊天,全程不写代码

  •  5
     
  •   0x01Dev · 17 小时 1 分钟前 · 1706 次点击

    背景

    3 月 22 号微信正式开放了 ClawBot 插件,底层叫 iLink 协议(ilinkai.weixin.qq.com)。这是微信第一次官方允许用程序收发个人号消息,不用逆向、不怕封号,算是个里程碑。

    我第一时间就开始对接了。说实话,iLink 协议本身的设计不复杂——标准 HTTP/JSON ,长轮询收消息,POST 发回复。但实际用下来,坑比想象中多很多。

    用 iLink 遇到的几个大坑

    1. 没有官方文档

    腾讯到现在没有公开 iLink 的 API 文档。现在社区里流传的协议规范全是逆向出来的,光端点说明就有 1200 多行。哪天腾讯调一下接口,所有第三方实现可能瞬间挂掉。

    2. context_token 管理复杂

    这是 iLink 最反直觉的设计。跟其他 Bot 平台不同(比如 Slack 你知道 channel_id 就能发消息),iLink 里光知道 user_id 不够,你必须拿到这条消息附带的 context_token 才能回复。token 是动态的、24 小时过期的,你得自己做缓存和刷新逻辑。我一开始没处理好这块,消息发出去微信端根本收不到,debug 了一整天。

    3. 24 小时窗口过期

    iLink 有个硬性限制:如果 24 小时内没有新的用户消息,之前的 context_token 全部失效,Bot 等于掉线了。对于需要持久运行的 Bot (比如定时提醒、消息转发),这个限制很致命。

    4. 发媒体消息的门槛离谱

    想让 Bot 发张图片?流程是这样的:

    1. getuploadurl 拿到腾讯 CDN 的预签名上传地址
    2. 用 AES-128-ECB 加密图片数据
    3. 上传到 CDN
    4. 拿到 CDN URL 后再调 sendmessage

    语音消息更惨,还要处理 Silk 编码格式。这套流程每种语言都得自己实现一遍。

    5. 没有管理界面

    想同时管多个微信号的 Bot ?想看消息有没有送达?想知道哪个环节出了问题?只能自己写日志慢慢翻。

    所以我做了 OpeniLink Hub

    花了几周时间,把上面这些问题全解决了,做成一个完整的开源平台。

    一行命令安装:

    curl -fsSL https://raw.githubusercontent.com/openilink/openilink-hub/main/install.sh | sh
    oih
    

    内置 SQLite ,零配置启动。打开 http://localhost:9800,第一个注册用户自动当管理员,扫码绑定微信号就可以用了。

    最大的亮点:应用市场

    这是和其他 iLink 项目最大的区别。GitHub 上已经有不少 iLink 的 SDK 和 Agent 桥接工具了,但它们都需要你写代码才能用。

    Hub 有一个应用市场,扫码绑定 Bot 之后,在引导页面直接点「安装」就能给 Bot 加新功能:

    Command Service ( 20+ 命令)

    • /s 600519 — 查贵州茅台实时股价
    • /ss — 查上证指数
    • /sus — 查美股指数(标普、纳斯达克、道琼斯)
    • /shk — 查港股指数
    • /b btc — 查数字货币价格
    • /gi 赛博朋克城市夜景 — AI 生成图片,Bot 直接发回微信
    • /a 帮我写一封请假邮件 — AI 对话,调大模型回答问题
    • /dp — 查大盘市场信息
    • 还有更多...

    Bridge (消息转发) 把微信收到的消息自动转发到飞书、Slack 、或者你自己的 HTTP 服务。不用写代码,配一下转发地址就行。

    OpenClaw ( AI Agent ) 如果你在用 OpenClaw ,装这个 App 你的 Agent 就能直接通过微信聊天了。

    Echo (开发模板) 想自己开发 App ?从 Echo 开始,3 个命令的最简示例,看懂了就能写自己的。

    整个流程就是:扫码绑定 → 打开应用市场 → 点安装 → Bot 立刻获得新能力。App 之间互不影响,想装就装想卸就卸。

    其他功能

    自动续期 — 24 小时窗口快到期了,Hub 自动续约,Bot 不会莫名其妙掉线。这个功能可以设置提前多久续期(比如提前 1 小时)。

    消息追踪 — 每条消息从收到、存储、投递到 App 、App 回复、发送回微信,完整的时间线。哪一步成功了、哪一步耗时多少、哪一步出错了,打开追踪页面一眼就能看到。Debug 体验比自己翻日志好 10 倍。

    多 Bot 管理 — 可以同时绑定多个微信号,统一面板管理。每个 Bot 独立安装不同的 App 、独立配置。

    三通道并行 — WebSocket 实时推送 + Webhook HTTP 回调 + AI 自动回复,三个通道可以同时开。你可以一边让 AI 自动回复用户,一边通过 WebSocket 实时收消息做自己的处理。

    7 种语言 SDK — Go 、Node.js 、Python 、PHP 、Java 、C#、Lua 。如果你想写代码对接而不是用应用市场,SDK 已经帮你封装好了 context_token 管理、CDN 加密、媒体发送这些脏活。

    Passkey 登录 — 支持指纹、Face ID 、硬件密钥直接登录管理后台,也支持 GitHub / LinuxDo OAuth 。

    和其他项目的区别

    目前 GitHub 上 iLink 相关的开源项目不少,但大多是两类:

    1. 底层 SDK(比如 wechatbot 、weixin-bot ) — 帮你封装了协议调用,但你得自己写全部业务逻辑
    2. Agent 桥接器(比如 WeClaw ) — 专注于把微信消息转给 AI Agent ,但没有通用的消息管理能力

    Hub 的定位不一样:它是一个完整的消息管理平台,带 Web 后台、应用市场、消息追踪、多通道分发。如果类比的话,SDK 相当于给你一堆砖头,Hub 相当于给你一栋装修好的房子,应用市场相当于家具城——你搬进去就能住,还能随时加家具。

    OpeniLink Hub SDK 类 Agent 桥接类
    Web 管理后台 无/简易
    应用市场
    消息追踪
    多 Bot 管理 需自己实现 部分支持
    不写代码也能用
    SDK 数量 7 种语言 1~4 种

    技术栈

    后端 Go 1.25 ,前端 React 19 + Vite + Tailwind ,数据库默认 SQLite (可选 PostgreSQL ),认证 WebAuthn + OAuth 2.0 PKCE ,App 事件投递支持 WebSocket 和 Webhook ,部署方式单文件二进制 / Docker / Docker Compose 。

    链接

    MIT 开源,随便用,不限商用。


    如果你也在折腾微信 iLink ,欢迎试用反馈。有问题可以在 GitHub 提 issue ,也欢迎 star 支持一下。

    38 条回复    2026-03-27 23:00:22 +08:00
    dubyfans
        1
    dubyfans  
       16 小时 56 分钟前
    来学习
    colorcat
        2
    colorcat  
       16 小时 55 分钟前
    看起来非常好的项目,我来试用试用
    whhjdi
        3
    whhjdi  
       16 小时 52 分钟前
    自动续期好啊,还能白嫖 bot
    idoubi
        4
    idoubi  
       16 小时 50 分钟前
    有意思。WeClaw 的 Hub 功能也在做了😄
    awsl2333
        5
    awsl2333  
       16 小时 48 分钟前 via iPhone
    学习了,这个好
    IceHe
        6
    IceHe  
       16 小时 45 分钟前
    666 ,下周试试看
    HaoC12
        7
    HaoC12  
       16 小时 44 分钟前
    好玩,好玩,不过这个不会导致微信泄露信息吧,up 科普下
    liril
        8
    liril  
       16 小时 43 分钟前
    好玩好玩
    soouu
        9
    soouu  
       16 小时 32 分钟前
    支持一下 up 这个软件把我这个问题解决了。感谢感谢 不给 curl 安装有问题
    ```
    curl -fsSL https://raw.githubusercontent.com/openilink/openilink-hub/main/install.sh | sh
    ==> Detected: darwin/arm64
    ==> Fetching latest version...
    ==> Version: v0.0.8
    ==> Downloading https://github.com/openilink/openilink-hub/releases/download/v0.0.8/openilink-hub_0.0.8_darwin_arm64.tar.gz
    error: Binary 'oih' not found in archive. Download may have failed.
    ```
    0x01Dev
        10
    0x01Dev  
    OP
       15 小时 28 分钟前
    @HaoC12 Hub 是自部署的,数据全在你自己机器上(默认 SQLite 本地文件),消息走的是微信官方 iLink 协议( ilinkai.weixin.qq.com ),不经过任何第三方。除非你自己配了转发,否则消息不会发到外面去。源码
    MIT 开源,https://github.com/openilink/openilink-hub
    0x01Dev
        11
    0x01Dev  
    OP
       15 小时 21 分钟前
    @soouu 不好意思,刚刚发布的新版本已经修复
    xibusangna
        12
    xibusangna  
       15 小时 14 分钟前
    看着不错,下载试试
    zuoyou
        13
    zuoyou  
       14 小时 57 分钟前
    必须得先安装 OpenClaw ,才能安装使用 OpeniLink Hub 嘛
    0x01Dev
        14
    0x01Dev  
    OP
       14 小时 49 分钟前
    @zuoyou 不需要,OpeniLink Hub 是完全独立的项目,跟 OpenClaw 没有任何依赖关系。

    Hub 本身就是一个完整的微信 Bot 消息管理平台,自带 WebSocket 、Webhook 、AI 自动回复三个通道,还有应用市场可以一键装功能(查股票、生成图片、AI 对话等),这些都不需要 OpenClaw 。

    OpenClaw 在 Hub 里的角色是应用市场中的一个内置 App 。如果你恰好在用 OpenClaw 做 AI Agent ,可以在 Hub 的应用市场里一键安装 OpenClaw App ,这样你的 Agent 就能直接通过微信收发消息了。不用的话完全忽略就行,不影响 Hub 的任何其他功能。
    bhwa233
        15
    bhwa233  
       14 小时 48 分钟前
    boycem
        16
    boycem  
       14 小时 34 分钟前
    openclaw plugins install openclaw-channel-openilink fetch failed
    0x01Dev
        17
    0x01Dev  
    OP
       14 小时 23 分钟前
    @boycem 稍等几分钟,我们正更新哈
    szqh97
        18
    szqh97  
       14 小时 18 分钟前
    支持支持
    saveload
        19
    saveload  
       14 小时 18 分钟前
    来学习一下。
    ronyin
        20
    ronyin  
       14 小时 13 分钟前
    给楼主 star 。刚试了一下,有些命令好像没有返回消息。另外实在不知道这个玩意的使用场景是啥,除了玩一下?
    cense
        21
    cense  
       14 小时 10 分钟前 via Android
    可以主动推送信息吗?
    Codingxiaoshi
        22
    Codingxiaoshi  
       14 小时 10 分钟前
    学习学习
    tkwl
        23
    tkwl  
       14 小时 7 分钟前
    就说一个能主动推送消息吗?读协议说是必须客户端来了消息才能返回一个消息
    另外一个是能独立做一个 Bot 连接 PC 端吗?
    0x01Dev
        24
    0x01Dev  
    OP
       14 小时 6 分钟前
    @ronyin
    感谢 star !命令没返回的问题方便说下是哪个命令吗?可以提个 issue 我看下。

    使用场景的话,举几个实际在用的:

    - AI 回复:接 GPT/Claude/DeepSeek ,微信来消息自动回复,7×24 无人值守
    - 消息通知:业务告警、订单提醒、审批通知推到微信
    - 消息同步:微信消息自动转发到飞书/Slack/你自己的服务器
    - 数据查询:装个 App ,微信里直接查股价、查大盘、AI 对话、生成图片
    - 对接 OpenClaw 等:应用市场装个 OpenClaw App ,你的 AI Agent 就能通过微信对话了——理论上 OpenClaw 能干的事(写代码、操作文件、甚至远程控制电脑),都可以通过微信触发

    本质上 iLink 是微信第一次官方开放个人号 Bot API ,Hub 就是把这个 API 包装成了一个可用的平台。个人用装几个 App 也挺实用,企业用可以做助理、通知、数据助手这些。
    0x01Dev
        25
    0x01Dev  
    OP
       14 小时 5 分钟前
    @cense 可以主动推送,不过 iLink 协议有个限制:用户需要先给 Bot 发一条消息,Bot 拿到 token 后就能在 24 小时内主动推送了。Hub 有自动续期功能,到期前自动续约,只要续上了就能一直推。
    0x01Dev
        26
    0x01Dev  
    OP
       13 小时 59 分钟前
    @tkwl 关于主动推送: 目前 iLink 协议确实需要用户先发一条消息,Bot 拿到 context_token 后才能主动推。不过 Hub 有自动续期功能,token 到期前自动续约,只要保持住就能持续主动推送消息给用户。

    关于 PC 端独立 Bot: 目前 iLink 协议绑定的是微信账号,不是独立 Bot 账号,所以还做不到像企业微信那样创建一个独立的 Bot 。现在的方式是用一个微信号扫码绑定作为 Bot 使用。但是 pc 也是可以用的。
    hging
        27
    hging  
       13 小时 59 分钟前
    牛批,过来支持。
    可惜 Wechat 不能用。
    超级烦。
    jianqiao031313
        28
    jianqiao031313  
       13 小时 58 分钟前
    支持支持
    tkwl
        29
    tkwl  
       13 小时 56 分钟前
    @0x01Dev 已 star
    关于第二条不太理解,这个 bot 和 clawbot 不一样吧,因为目前 clawbot 只能绑定一个微信账号并且只在手机端可以访问
    0x01Dev
        30
    0x01Dev  
    OP
       13 小时 44 分钟前
    @tkwl #29 对,这两个不是一回事:

    - ClawBot 是微信里的插件,只能绑一个 OpenClaw 实例。
    - OpeniLink Hub 是独立的服务端平台,跑在你的电脑/服务器上,通过 iLink 协议和微信通信。它不受 ClawBot 插件的限制——可以同时绑定多个微信号,而且在任何有浏览器的设备上都能管理( PC 、Mac 、手机都行)

    简单说:ClawBot 是微信端的入口,Hub 是你自己这边的管理平台。
    lttplusgoole
        31
    lttplusgoole  
       13 小时 6 分钟前
    学习一下
    csgo2
        32
    csgo2  
       13 小时 3 分钟前
    前来学习
    xibusangna
        33
    xibusangna  
       11 小时 25 分钟前
    可以接入 claude 么?
    furiatimarcos569
        34
    furiatimarcos569  
       11 小时 13 分钟前 via Android
    学习
    0x01Dev
        35
    0x01Dev  
    OP
       10 小时 23 分钟前
    @xibusangna #33 可以的
    superares
        36
    superares  
       8 小时 32 分钟前
    官方这里有源码,有接口说明:
    https://www.npmjs.com/package/@tencent-weixin/openclaw-weixin
    testboy
        37
    testboy  
       6 小时 0 分钟前
    支持机器人通过语音气泡的形式给我回复或主动发送语音消息?
    onedge
        38
    onedge  
       5 小时 55 分钟前
    逢开源就 star ,一会来看看场景
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   881 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:55 · PVG 04:55 · LAX 13:55 · JFK 16:55
    ♥ Do have faith in what you're doing.