海狸IM 2.0 开放能力说明:OAuth2 接入与群推送机器人

海狸IM 2.0 开放能力说明:OAuth2 接入与群推送机器人

接上一篇《海狸IM 2.0 发版记录:六端工程拆分与主要变更说明》,本文单独说明 2.0 中与「开放」相关的两条实现路径:OAuth2 第三方登录群推送机器人。内容为工程实践记录,供部署与二次开发时查阅。


1. 能力范围总览

2.0 的开放相关能力不宜笼统称为「全功能开放平台」。按当前代码与门户功能,实际落地情况如下:

能力 状态 涉及工程
OAuth2 第三方登录 已支持 beaver-open、beaver-oauth、beaver-server(open/auth)
群通知单向推送(Webhook) 已支持 beaver-desktop(配置入口)、beaver-server(bot_public)
开放平台门户配置 IM 事件 Webhook 未开放 ---
群内 @机器人 触发回复 未支持 ---
机器人与用户双向对话 未支持 ---

OAuth2 处理 身份接入 (谁登录了第三方系统);群推送机器人处理 通知下发(外部系统向群内发送一条消息)。二者协议、配置入口均不同,部署时不应混用同一套配置流程。


2. OAuth2 接入说明

2.1 相关工程职责

工程 职责
beaver-open 开发者门户:创建 OAuth2 应用、配置 redirect_uri、Scope、密钥管理
beaver-oauth 用户侧授权页:展示授权确认、扫码登录确认 UI
beaver-server open_api / auth_api:Token 签发、Code 交换、扫码状态流转

门户(open)与授权页(oauth)分仓库部署,前端职责分离:开发者配置走 open,终端用户授权走 oauth。

2.2 门户侧可配置项(beaver-open)

  • 注册 OAuth2 应用,获取 AppId、AppSecret
  • 配置回调地址(redirect_uri)
  • 设置权限范围(Scope),限制第三方可读取的用户信息字段
  • Secret 轮换、Token 吊销

门户 不提供 IM 事件订阅、群内机器人交互等配置项。

2.3 支持的授权方式(2.0)

方式 典型用途
扫码登录 PC / Web 展示二维码,移动端海狸客户端扫码确认
OAuth2 Authorization Code 具备后端的 Web 应用标准接入
H5 授权码 移动端浏览器 H5 页面
OAuth Code 登录 2.0.1 服务端补充,可与 PC 端登录流程联动

2.4 扫码登录流程(逻辑顺序)

从用户操作角度,链路可概括为:

  1. 用户在第三方系统(如内部 OA)发起「海狸账号登录」
  2. 系统进入授权流程,展示二维码或跳转授权页
  3. 用户使用手机海狸客户端扫码
  4. beaver-oauth 展示授权确认(应用名、权限范围)
  5. 用户确认后,beaver-server 完成 Token 签发
  6. 第三方系统凭 Token 建立会话

具体接口路径与参数以在线文档及 open_api 定义为准。

2.5 常见接入场景

  • 内部 OA、CRM 等系统统一使用海狸账号登录
  • 自研 Web 应用将海狸 IM 作为身份提供方(IdP)
  • 需要私有化部署且希望账号体系统一的企业内网环境

Web 侧可参考 beaver-sdk(JS SDK);细节见文档站 OAuth2 章节。


3. 群推送机器人说明

3.1 与 OAuth2 的区别

群推送机器人 不在 beaver-open 门户中配置 。创建与管理入口在 beaver-desktop 客户端:群详情 → 群助手。

服务端通过 bot_public 相关接口接收外部 HTTP 请求,将消息写入对应群会话。该路径与 OAuth2 应用管理无配置依赖,可独立使用。

3.2 功能定义

2.0 支持的机器人类型为 通知机器人(群助手内可选「自定义机器人」模板):

  • 群主或管理员在 PC 端创建机器人,设置名称、头像、描述
  • 创建成功后获得带 Token 的 Webhook 推送 URL
  • 外部系统向该 URL 发起 POST,即可在群内产生一条机器人发出的通知消息

数据流向为单向:

复制代码
外部系统(监控 / CI / 定时任务)
    → HTTP POST(Webhook 推送 URL)
    → beaver-server(bot_public)
    → 群聊会话中出现通知消息

3.3 当前不支持的行为

  • 用户在群内 @机器人 并期待自动回复
  • 机器人拉取并处理群消息内容
  • 在 beaver-open 门户订阅「群消息」等 IM 事件

若业务需要上述交互式机器人能力,2.0 尚未提供,需关注后续版本或自行在服务端扩展。

3.4 PC 端配置步骤

  1. 使用 beaver-desktop 2.0 进入目标群聊
  2. 打开群详情 → 群助手 → 添加群助手
  3. 类型选择「通知机器人」
  4. 模板选择「自定义机器人」,填写展示信息
  5. 保存后复制 Webhook 推送地址
  6. 使用脚本或监控系统 POST 该地址,验证群内是否收到消息

机器人启用状态、密钥重置、从群内移除等操作亦在群助手界面完成。移动端 2.0 以聊天为主,创建入口主要在 PC 端。

3.5 适用场景示例

场景 说明
运维告警 监控系统触发后 POST 推送地址,值班群收到告警文本
发布通知 CI 完成后推送版本号与构建结果
定时报告 定时任务推送日报、周报摘要
流程通知 审批结束后向业务群推送结果

不适合依赖 @机器人 问答、自动建单回复等双向交互的场景。


4. 需求与实现路径对照

需求 建议路径 配置入口
第三方系统使用海狸账号登录 OAuth2 beaver-open + beaver-oauth
外部系统向群发送通知消息 群推送机器人 beaver-desktop 群助手
用户 @机器人 提问 2.0 未实现 ---
IM 事件回调至业务服务器 门户未开放 ---

5. 部署与验证要点

5.1 OAuth2

  • beaver-server 已部署,且 open、auth 相关服务可用
  • beaver-open、beaver-oauth 前端已部署并可访问
  • 在门户创建测试应用,配置合法 redirect_uri
  • 按文档完成扫码或 Code 流程,确认 Token 可换取用户信息

5.2 群推送机器人

  • beaver-desktop 2.0 已安装,操作账号为群主或管理员
  • 在目标群创建通知机器人并获取推送 URL
  • 使用 curl 或监控脚本发送测试请求,确认群消息落库与展示
  • 无需 在 beaver-open 中为该机器人额外配置

部署细节见项目文档站;本地与服务器环境可参考已有部署教程。


6. 常见问题(技术向)

门户能否配置 IM 事件 Webhook?

2.0 不能。beaver-open 仅承担 OAuth2 应用管理。群通知推送通过 PC 端群助手创建的 Webhook URL 实现。

OAuth2 与群推送机器人是否必须同时部署?

否。二者可独立使用:仅做登录接入时部署 open + oauth;仅做群通知时只需服务端与 PC 客户端配置机器人。

beaver-open 与 beaver-manager 的区别?

beaver-manager 面向运营人员(用户、内容、监控);beaver-open 面向接入 OAuth2 的开发者。使用角色与功能域不同。

移动端能否创建推送机器人?

2.0 创建与管理入口主要在 PC 端群助手;移动端以消息收发为主。


7. 小结

海狸 IM 2.0 在开放能力上的实现较为克制:

  • OAuth2:门户 + 授权页 + 服务端,完成第三方登录接入
  • 群推送机器人:PC 端配置 + 服务端 bot_public,完成单向通知推送

IM 事件订阅、@机器人交互等能力尚未在 2.0 开放。接入前应以上表「能力范围总览」为准,避免按商业 IM 开放平台的全套能力做架构假设。


参考链接

工程 地址 说明
beaver-server https://github.com/wsrh8888/beaver-server OAuth2、bot_public 接口
beaver-open https://github.com/wsrh8888/beaver-open OAuth2 应用门户
beaver-oauth https://github.com/wsrh8888/beaver-oauth 用户授权页
beaver-desktop https://github.com/wsrh8888/beaver-desktop 群推送机器人配置入口
beaver-sdk https://github.com/wsrh8888/beaver-sdk Web 侧 OAuth2 SDK
文档 https://wsrh8888.github.io/beaver-docs/ 接口与部署说明

上一篇:海狸IM 2.0 发版记录:六端工程拆分与主要变更说明(44.海狸IM 2.0 正式发布:全端能力大升级.md)

相关推荐
chinesegf1 小时前
构建高效工具调用Prompt的极简范例
人工智能·自动化
小柒儿3361 小时前
生物计算:AI与生物技术融合,重构医药研发与生命健康产业逻辑
人工智能·重构
大鱼>1 小时前
ROS2+AIoT:机器人操作系统的物联网化演进
物联网·机器人
沈麽鬼1 小时前
今天刚上线!Trae AI 创造力活动来了,程序员 / 设计师直接薅满福利
人工智能·ai编程·trae
oscar9991 小时前
AI 测试用例生成:在 Katalon True Platform 中从需求直达执行
人工智能·测试用例·katalon
子午1 小时前
从水果识别到行业落地:基于 千问Qwen2.5-VL、LoRA 微调与本地部署的多模态 AI 项目实践
人工智能
Prowler_92561 小时前
创新项目实训博客(十一):大模型智能标题生成与多级降维兜底策略
人工智能·flutter·aigc
zhuhai_xigedian1 小时前
物联网技术在源网荷储系统中的创新应用
大数据·运维·人工智能·区块链·能源
闵孚龙1 小时前
《PyTorch 深度修炼》优化器:参数到底是怎么被更新的
人工智能·pytorch·python