Skip to content

About

钉钉 OA 后台应用管理 CLI 插件(基于 OpenCLI 框架)

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

opencli-plugin-dingtalk-oa

钉钉 OA 后台 (oa.dingtalk.com) 应用管理 CLI 插件,基于 OpenCLI 框架。

前置条件

  1. 全局安装 OpenCLI:npm i -g @jackwener/opencli
  2. 安装 Qoder 浏览器扩展并启动 daemon(opencli doctor 验证)
  3. 在 Chrome 中登录 https://oa.dingtalk.com 并选择组织

安装

cd /path/to/opencli-plugin-dingtalk-oa
opencli plugin install .

命令一览

读操作

命令 说明
dtoa apps-list 应用清单(支持 --status/--scope/--type/--q 过滤)
dtoa apps-detail <appId> 单应用详情
dtoa apps-visible <appId> 单应用可见范围明细
dtoa apps-admins <appId> 管理员列表(v0.1 占位)
dtoa apps-stats <appId> 使用统计(v0.1 占位)

写操作

所有写操作默认 --dry-run=true,仅预览不执行。加 --dry-run=false 实际生效。

命令 说明
dtoa apps-enable <appId> 启用已停用的应用
dtoa apps-disable <appId> 停用应用(可恢复)
dtoa apps-set-visible <appId> --scope <all|depts|users> 设置可见范围
dtoa apps-uninstall <appId> --confirm=yes 物理删除(不可恢复)

技术架构

策略:INTERCEPT + hash-change

  ┌─ Chrome (用户已登录 oa.dingtalk.com) ─┐
  │                                        │
  │  1. goto oa.dingtalk.com/#/welcome     │
  │  2. installInterceptor('get_org_app')  │
  │  3. location.hash = '#/microApp/...'   │  ← hash-change 不刷新 context
  │  4. SPA AngularJS 自动发 XHR           │  ← 带完整 auth (HttpOnly cookie)
  │  5. interceptor 捕获 response body     │
  │                                        │
  └────────────────────────────────────────┘
           ↕  CDP (via Browser Bridge)
  ┌─ opencli daemon (localhost:19825) ─────┐
  │  waitForCapture → getInterceptedRequests│
  └────────────────────────────────────────┘

写操作额外利用 Angular $injector 直接调 SPA 内部的 request service, 自动走 apiList URL 映射 + auth 拦截器(X-csrf-token + urlFormData 编码)。

已知限制 (v0.1)

  • 不支持批量操作
  • apps-admins / apps-stats 接口未落定,返回占位错误
  • 每条命令 3-8s 延迟(取决于 SPA 加载和 API 响应速度)
  • 需要 Chrome 保持 oa.dingtalk.com 的登录态

API 映射参考

apiList key URL path 用途
get_org_app /omp/api/micro_app/get_org_app 应用清单
edit_micro_app /omp/api/micro_app/edit 编辑(含可见范围)
delete_micro_app /omp/api/micro_app/delete 停用/物理删除
open_micro_app /omp/api/micro_app/restore 恢复(启用)
sort_micro_app /omp/api/micro_app/sort 排序

License

MIT

About

钉钉 OA 后台应用管理 CLI 插件(基于 OpenCLI 框架)

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages