跳至主要内容

介紹

工作臺開放平臺用於將企業業務系統接入工作臺。應用可以透過網頁入口為員工提供業務功能,也可以透過服務端 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. 頁面透過 HTTPS 將 code 提交給應用後端。
  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 只用於換取使用者身份,換取後應建立應用自己的登入態。
  • 機器人訊息和事件訂閱都應設計冪等、重試和失敗告警。

相關文件​