跳到主要内容

介绍

工作台开放平台用于把企业业务系统接入工作台。应用可以通过网页入口向员工提供业务功能,也可以通过服务端 API 读取授权范围内的组织数据、发送机器人消息和接收组织变更事件。

平台概述​

工作台开放平台把企业应用的入口、身份、组织数据和消息能力统一到一套开发者接口中。开发者只需要关注应用配置、页面接入、服务端调用和业务安全,不需要了解平台内部实现。

平台角色​

角色主要职责
企业管理员管理应用、可见范围、权限、机器人和发布状态
应用负责人维护应用配置、入口地址和版本发布
应用前端渲染页面、判断运行环境、申请一次性授权码
应用后端保管密钥、换取令牌和用户身份、调用服务端 API
企业员工在工作台打开应用并使用业务功能

应用形态​

  • 网页应用:配置桌面端和移动端入口,在工作台中打开业务页面。
  • 应用机器人:以应用身份向成员发送单聊消息,适合提醒、通知和待办触达。
  • 群聊机器人:绑定到指定群聊,通过 Webhook 向群内发送消息。
  • 事件接收端:接收组织数据变更回调,并在应用侧完成验签、解密和幂等处理。

能力组成​

能力典型使用方式主要文档
工作台应用创建应用、配置入口、设置可见范围并发布本页应用创建与发布
端内免登页面通过 SDK 获取一次性 code,服务端换取当前用户身份客户端 SDK、免登流程
应用级 API服务端使用 access_token 调用通讯录、企业信息和机器人接口本页 API 总览、服务器端 API
事件订阅平台向应用回调组织数据变更事件订阅

API 总览​

服务端 API 统一使用 https://{gateway_host} 作为入口。除 OAuth 接口外,大部分接口返回统一外壳:{ "code": 200, "msg": "", "data": {} }。

分类接口或能力鉴权方式说明
鉴权/auth/v1/oauth/tokenappId + appSecret获取应用级 access_token
免登SDK 获取 code、/auth/v1/oauth/userinfo客户端登录态 + 应用令牌获取当前用户身份
通讯录/open/v1/contact/*access_token查询部门和成员
企业信息/open/v1/enterprise/infoaccess_token查询企业名称和 Logo
应用机器人/open/v1/robot/messagesaccess_token单聊或批量发送机器人消息
群聊机器人/webhook/robot/sendWebhook 令牌 + 签名向指定群聊发送消息
事件订阅应用配置的 HTTPS 回调地址平台签名与加密接收通讯录变更

权限标识​

权限标识作用
link.snsapi.base申请端内免登 code
contact.department.read读取部门和部门成员
contact.user.read读取成员详情
enterprise.info.read读取企业基础信息
robot.push发送应用机器人消息

通用约定​

  • 应用级令牌默认有效期为 7200 秒,建议缓存并在过期前刷新。
  • code 默认有效期为 300 秒且只能使用一次。
  • 成员 ID、部门 ID 在 JSON 中使用字符串。
  • 查询接口可在网络错误或 5xx 时有限重试;鉴权、参数和权限错误不要自动重试。
  • 详细请求参数、响应字段和多语言示例见服务器端 API。

核心概念与凭证​

应用状态​

状态说明
开发中可以配置和联调,但未向员工投放
已发布按可见范围投放到工作台,开放接口可用
已停用员工无法打开应用,已签发令牌失效
已删除应用及其配置被删除,原应用标识不再复用

关键概念​

概念说明
可见范围决定员工能否看到应用,也决定通讯录接口返回范围
平台入口应用在桌面端或移动端打开时使用的 H5 地址
端内免登地址允许页面申请 code 的地址白名单
应用机器人以应用身份向成员发送单聊消息的机器人
群聊机器人绑定群聊并通过 Webhook 发送消息的机器人
事件订阅平台主动向应用回调组织数据变化

凭证分工​

凭证使用方用途安全要求
appId前端和后端标识应用可出现在前端,但不能单独用于鉴权
appSecret后端获取应用 access_token只保存在后端
access_token后端调用开放接口不下发到浏览器或客户端
code前端到后端一次性换取当前用户身份不缓存、不写日志、不放 URL
Webhook 令牌与密钥后端调用群聊机器人只保存在服务端并定期轮换

客户端登录态只用于客户端申请 code;应用 access_token 只用于服务端调用开放接口。不要把客户端登录态、应用令牌或应用密钥混用。

身份换取​

  1. 页面通过官方 SDK 申请一次性 code。
  2. 页面将 code 通过 HTTPS 提交给应用后端。
  3. 应用后端使用 access_token 调用 UserInfo 接口。
  4. 后端根据返回的 userId 建立应用自己的会话。

用户身份以 code 绑定的用户为准,请求体中自行提交的用户 ID 不会覆盖平台身份。

应用创建与发布​

创建应用​

在管理后台进入开发者中心,创建企业内部应用并填写应用名称、图标、负责人和应用描述。创建成功后获得 appId;appSecret 只展示给有权限的管理人员,应立即保存到服务端密钥管理系统。

配置应用​

配置项用途
桌面端平台入口员工从桌面端工作台打开的 H5 地址
移动端平台入口员工从移动端工作台打开的 H5 地址
端内免登地址允许页面申请 code 的地址白名单
可见范围决定哪些员工可以看到应用和读取哪些组织数据
开放权限开启通讯录、企业信息、机器人等服务端能力
IP 白名单限制服务端 API 的来源 IP,可选
事件订阅配置通讯录事件回调地址、签名令牌和加密密钥
机器人创建应用机器人或配置群聊机器人

平台入口与端内免登地址是两个不同配置:入口决定应用从哪里打开,免登地址决定哪些页面可以申请授权码。

发布版本​

配置保存后创建版本并发布。只有已发布、已启用且已开启客户端显示的应用,才会投放到工作台并正常使用开放接口。

发布前检查:

  • 两端入口均为可访问的 HTTPS 地址;
  • 免登地址覆盖实际发起授权的页面;
  • 可见范围和开放权限符合最小权限原则;
  • 服务端已配置 appSecret、回调验签和令牌缓存;
  • 页面已处理浏览器环境、授权失败、网络超时和重复进入;
  • 机器人消息已设置幂等键和失败重试策略。

版本变更​

修改入口、可见范围、权限或机器人配置后,应重新发布版本并在目标端验证。停用应用会阻止员工打开应用,并使已签发的 access_token 失效;删除应用后原 appId 不再复用。

机器人与事件概览​

平台提供两类机器人和一类事件订阅能力,三者的凭证、消息范围和处理方式不同。

能力用途调用或接收方式适合场景
应用机器人以应用身份向成员发送单聊消息服务端 API + access_token告警、待办、审批提醒
群聊机器人向绑定的群聊发送消息Webhook + 签名群通知、值班播报
事件订阅当前接收成员和部门变化HTTPS 回调 + 验签解密组织数据增量同步

选择建议​

  • 需要向指定成员触达时使用应用机器人;批量发送时使用批量接口并处理逐项结果。
  • 只需要向一个工作群广播时使用群聊机器人,不要把 Webhook 密钥当作应用令牌。
  • 需要持续同步组织数据时,使用事件订阅作为变化信号,并用通讯录 API 做定期对账。

通用安全要求​

  • 所有机器人和事件密钥只保存在服务端。
  • 对发送请求使用幂等键,对事件使用 eventId 去重。
  • 回调先验证签名、时间戳和解密结果,再解析业务字段。
  • 不要在日志中记录令牌、签名原文、授权码或完整回调密文。

最小接入闭环​

创建应用 → 配置入口与权限 → 发布应用 → 页面申请 code
→ 服务端换取用户身份 → 服务端调用业务 API → 建立应用自己的会话

设计原则​

  • 客户端和服务端使用不同凭证,不能互相替代。
  • 应用可见范围同时影响工作台展示、免登和通讯录数据返回。
  • 一次性 code 只用于换取用户身份,应用应在换取后建立自己的登录态。
  • 机器人消息和事件订阅都应设计幂等、重试和失败告警。

相关文档​