GitHub - hoojos/feishu-bot · GitHub
Skip to content

hoojos/feishu-bot

Folders and files

Repository files navigation

飞书 OpenCode 机器人

通过飞书与 OpenCode AI 编程助手进行对话。支持 WebSocket 长连接接收消息。

功能

  • WebSocket 长连接接收飞书消息(推荐)
  • HTTP 回调接收消息(备用)
  • 将消息发送给 OpenCode 处理
  • 将 OpenCode 的响应发送回飞书

快速开始

1. 创建飞书自建应用

  1. 访问 飞书开放平台
  2. 进入开发者后台 → 创建企业自建应用
  3. 获取 App ID 和 App Secret

2. 配置应用权限

在应用的「权限管理」中添加以下权限:

  • im:chat:readonly - 读取群信息
  • im:message:send_as_bot - 以机器人身份发送消息
  • im:message:receive - 接收消息

3. 配置事件订阅

方式一:WebSocket 长连接(推荐,自动重连)

  • 在代码中自动连接,无需额外配置
  • 程序启动后自动建立 WebSocket 连接

方式二:HTTP 回调

  1. 在「事件与回调」中添加事件:im.message.receive_v1
  2. 配置回调地址:https://你的域名/event
  3. 需要有公网可访问的域名

4. 发布应用

在应用详情页面点击「发布应用」

5. 添加机器人到群

  1. 创建一个飞书群
  2. 点击群设置 → 群机器人
  3. 添加自建应用

配置环境变量

export FEISHU_APP_ID="your_app_id"
export FEISHU_APP_SECRET="your_app_secret"
export SERVER_PORT="8080"
export OPENCODE_CMD="opencode"

运行

cd feishu-opencode-bot
./feishu-opencode-bot

本地开发

由于 WebSocket 需要公网访问,本地开发建议使用 ngrok:

# 开启 ngrok 端口转发
ngrok http 8080

# 配置飞书回调地址为 ngrok 提供的 URL

项目结构

feishu-opencode-bot/
├── cmd/
│   └── main.go          # 程序入口
├── internal/
│   ├── config/
│   │   └── config.go    # 配置管理
│   ├── feishu/
│   │   └── bot.go       # 飞书机器人 (WebSocket + HTTP)
│   └── opencode/
│       └── client.go    # OpenCode 客户端
└── feishu-opencode-bot  # 编译好的二进制文件

工作流程

  1. 飞书机器人通过 WebSocket 长连接接收消息
  2. 收到消息后发送到消息通道
  3. 主程序从通道读取消息,调用 OpenCode 执行
  4. 将 OpenCode 的输出发送回飞书群

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages