通过飞书与 OpenCode AI 编程助手进行对话。支持 WebSocket 长连接接收消息。
- WebSocket 长连接接收飞书消息(推荐)
- HTTP 回调接收消息(备用)
- 将消息发送给 OpenCode 处理
- 将 OpenCode 的响应发送回飞书
- 访问 飞书开放平台
- 进入开发者后台 → 创建企业自建应用
- 获取 App ID 和 App Secret
在应用的「权限管理」中添加以下权限:
im:chat:readonly- 读取群信息im:message:send_as_bot- 以机器人身份发送消息im:message:receive- 接收消息
方式一:WebSocket 长连接(推荐,自动重连)
- 在代码中自动连接,无需额外配置
- 程序启动后自动建立 WebSocket 连接
方式二:HTTP 回调
- 在「事件与回调」中添加事件:
im.message.receive_v1 - 配置回调地址:
https://你的域名/event - 需要有公网可访问的域名
在应用详情页面点击「发布应用」
- 创建一个飞书群
- 点击群设置 → 群机器人
- 添加自建应用
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 提供的 URLfeishu-opencode-bot/
├── cmd/
│ └── main.go # 程序入口
├── internal/
│ ├── config/
│ │ └── config.go # 配置管理
│ ├── feishu/
│ │ └── bot.go # 飞书机器人 (WebSocket + HTTP)
│ └── opencode/
│ └── client.go # OpenCode 客户端
└── feishu-opencode-bot # 编译好的二进制文件
- 飞书机器人通过 WebSocket 长连接接收消息
- 收到消息后发送到消息通道
- 主程序从通道读取消息,调用 OpenCode 执行
- 将 OpenCode 的输出发送回飞书群
