前言
作为一个博客作者,我经常遇到这样的困扰:
- 读者提交了评论或留言,我不能第一时间知道
- 需要登录后台才能审核评论,操作繁琐
- 垃圾评论和正常评论混在一起,筛选困难
为了解决这些问题,我决定为博客开发一个飞书审批机器人,实现:
- 📱 新评论/留言实时推送到飞书
- ✅ 一键审批通过或拒绝
- 🔄 卡片状态实时更新
效果展示

技术方案
架构设计
|
核心技术选型
- 飞书 SDK: oapi-sdk-go/v3 - 官方 Go SDK
- 连接方式: WebSocket 长连接(无需公网域名)
- 卡片交互: 飞书消息卡片 v2
实现过程
1. 创建飞书应用
首先需要在飞书开放平台创建应用:
- 创建企业自建应用
- 获取
App ID和App Secret - 订阅事件:
im.message.receive_v1和card.action.trigger - 开启机器人能力
2. 核心代码实现
FeishuBotService 结构
|
启动 WebSocket 连接
|
发送通知卡片
|
处理按钮点击
|
3. 与博客系统集成
在博客主程序中启动机器人:
|
4. 部署配置
使用 systemd 管理服务,环境变量配置:
|
遇到的问题
1. 卡片 JSON 格式错误
现象: 发送卡片时报错 parse card json err
解决: 飞书卡片要求数组类型为 []interface{} 而非 []map[string]interface{}
|
2. 回调响应格式
现象: 点击按钮后卡片没有更新
解决: 回调响应必须使用 callback.Card 结构:
|
3. 管理员 OpenID 获取
给机器人发送任意消息后,从日志中获取发送者的 OpenID:
|
最终效果
✅ 实时通知: 评论/留言提交后 1 秒内收到飞书通知
✅ 一键审批: 点击按钮即可完成审核,无需登录后台
✅ 状态同步: 操作后卡片立即更新,显示审批结果和时间
✅ 长连接: WebSocket 模式,无需配置公网回调地址
总结
通过飞书机器人,我把博客评论审核的工作流从「登录后台→查找评论→审核」简化为「收到通知→点击按钮」,大大提高了效率。同时 WebSocket 长连接模式让部署变得简单,不需要公网域名和回调配置。
如果你也想为博客添加类似功能,欢迎参考本文的实现方案。
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿文的博客!
评论
0 条评论