@openilink/app-wecom

March 30, 2026 · View on GitHub

License: MIT TypeScript Docker

微信 ↔ 企业微信双向消息桥接 + 18 个 AI Tools — 消息、通讯录、日程、审批、打卡、微盘、客户联系全覆盖。

本项目是 OpeniLink Hub 的官方 App。Hub 是开源的微信 Bot 管理平台 + App 应用市场。

功能亮点

  • 智能机器人长连接 — 基于 @wecom/aibot-node-sdk WebSocket 协议,无需公网回调即可接收消息
  • 流式回复 — 支持 Markdown 流式回复,用户体验流畅
  • 双向消息桥接 — 微信 → 企业微信、企业微信 → 微信自动转发
  • 18 个 AI Tools — 覆盖消息发送、通讯录、日程、审批、打卡、微盘、客户联系等核心场景
  • OAuth 自动安装 — 支持 PKCE 安全授权流程
  • SQLite 持久化 — 安装记录与消息关联可靠存储
  • Docker 一键部署 — 一键容器化部署,数据持久化

使用方式

安装到 Bot 后,支持三种方式调用:

自然语言(推荐)

直接用微信跟 Bot 对话,Hub AI 会自动识别意图并调用对应功能:

  • "用企业微信通知全组明天开会"
  • "查一下打卡记录"

命令调用

使用 /命令名 参数 的格式直接调用:

  • /send_wecom_message --to_user xxx --text 你好

AI 自动调用

Hub AI 在多轮对话中会自动判断是否需要调用本 App 的功能,无需手动触发。

AI Tools(18 个)

消息发送 — 4 个

工具名说明
send_wecom_message发送企业微信应用文本消息
send_wecom_markdown发送企业微信 Markdown 消息
send_wecom_card发送企业微信模板卡片消息
send_wecom_news发送企业微信图文消息

通讯录 — 3 个

工具名说明
get_user_info获取企业微信成员详细信息
list_department_users获取部门成员列表
list_departments获取部门列表

日程 — 3 个

工具名说明
list_schedule查看指定成员在时间范围内的日程
create_schedule创建企业微信日程
get_free_busy查询成员忙闲状态

审批 — 2 个

工具名说明
list_approvals查询企业微信审批列表
get_approval_detail查询企业微信审批单详情

打卡 — 2 个

工具名说明
get_checkin_data查询企业微信打卡记录
get_checkin_rules查询企业微信打卡规则

微盘 — 2 个

工具名说明
list_spaces列出企业微信微盘空间列表
list_files列出企业微信微盘空间中的文件

客户联系 — 2 个

工具名说明
list_external_contacts列出成员的外部联系人列表
get_external_contact查询外部联系人详情

快速开始 — 应用市场一键安装

  1. 打开 OpeniLink Hub 管理后台
  2. 进入 应用市场,找到 企业微信桥接
  3. 点击 安装,按提示填入企业微信 BotID / Secret
  4. 安装完成后即可在微信中使用
自部署 — Docker
# 使用 docker-compose
docker compose up -d

或源码运行:

git clone https://github.com/openilink/openilink-app-wecom.git
cd openilink-app-wecom
npm install
cp .env.example .env   # 编辑 .env 填入实际值
npm run dev             # 开发模式
npm run build && npm start  # 生产模式
环境变量
变量名必填默认值说明
HUB_URLOpeniLink Hub 地址
BASE_URL本应用对外可访问的基础 URL
WECOM_BOT_ID企业微信智能机器人 BotID
WECOM_BOT_SECRET企业微信智能机器人 Secret
WECOM_CORP_ID企业 ID(OpenAPI 调用需要)
WECOM_CORP_SECRET应用 Secret(OpenAPI 调用需要)
PORT8085HTTP 监听端口
DB_PATHdata/wecom.dbSQLite 数据库文件路径
企业微信配置指南

创建企业微信智能机器人

  1. 登录 企业微信管理后台
  2. 进入 应用管理创建应用智能机器人
  3. 获取 BotIDSecret
  4. 智能机器人使用 WebSocket 长连接,无需配置回调地址

(可选)创建自建应用

如需使用通讯录、审批、打卡等 OpenAPI 功能:

  1. 在管理后台创建 自建应用
  2. 获取 CorpID(企业信息页面)和 CorpSecret(应用详情页面)
  3. 在应用权限中开启以下 API 权限:
    • 通讯录管理 — 成员读取、部门读取
    • OA — 审批、打卡
    • 日程 — 日程读写
    • 微盘 — 空间和文件读取
    • 客户联系 — 外部联系人读取
  4. 设置应用可见范围

HTTP 路由

路径方法说明
/healthzGET健康检查
/manifestGET应用清单
/oauth/setupGETOAuth 安装发起
/oauth/redirectGETOAuth 回调
/webhookPOSTHub 事件接收
开发指南

架构

graph LR
    WX[微信用户] -->|消息| HUB[OpeniLink Hub]
    HUB -->|Webhook| APP["@openilink/app-wecom"]
    APP -->|OpenAPI| WECOM[企业微信]
    WECOM -->|WebSocket| APP
    APP -->|Hub API| HUB
    HUB -->|消息| WX

    subgraph APP
        direction TB
        IDX[index.ts 主入口]
        RT[Router 命令路由]
        B1[WxToWecom 桥接]
        B2[WecomToWx 桥接]
        TL[18 AI Tools]
        ST[Store SQLite]
    end

安全与隐私

  • 消息内容不落盘 — 消息内容仅在内存中中转,不会存储到数据库或磁盘
  • 仅保存消息 ID 映射 — 数据库中只保存消息 ID 对应关系(用于回复路由),不保存消息正文
  • 用户数据严格隔离 — 所有查询均按 installation_id + user_id 双重过滤,不同用户之间完全隔离
  • 应用市场安装(托管模式) — 不会记录、存储或分析用户的消息内容;所有代码完全开源,接受社区审查
  • 自部署 — 如需更高隐私保障,可自行部署,所有数据仅在您自己的服务器上流转

License

MIT