同步组织与员工
使用身份:客户端模式 Token(grant_type=client_credentials)
业务背景:集成开发方需要把自身系统的组织架构、员工账号初始化同步到 SView 企业看图系统;客户端 Token 只能做组织架构同步,无法操作文件、项目业务。
重要约束:部门必须按层级自上而下创建,父部门优先完成创建;创建员工时引用的部门 integrationId 必须已经在 企业看图 系统存在。
前置准备
- 从 SView 实施处获取 client_id、client_secret、tenant‑id;
- 集成开发方准备好完整组织树:部门 integrationId、部门名称、层级关系;员工 integrationId、手机号、所属部门、账号角色。
详细调用流程
- 获取客户端 Access Token 接口:
POST /auth/oauth2/token- Header:Authorization 填
Basic base64(clientId:clientSecret),Content‑Type 为application/x‑www‑form‑urlencoded,带上全套公共 Header; - Body 表单参数:
grant_type=client_credentials,scope=server; - 接收返回
access_token、expires_in;集成开发方缓存该令牌,用于后续组织同步。
- Header:Authorization 填
- 【可选步骤,调试 / 定时同步建议执行】校验令牌有效性 接口:
GET /auth/token/check_token- Query 参数传入 token 值;携带公共 Header;
- 返回 ok=true 代表令牌有效,读取 expiresAt 可以判断剩余有效期。
- 循环批量创建部门(从上到下,先父后子) 接口:
POST /login‑register/open‑api/departments- Header:Authorization 为
Bearer {客户端access_token}+ 全套公共 Header;Content‑Type=application/json; - Body 入参:
- integrationId:集成开发方部门唯一 ID;
- deptName:部门名称;
- sortOrder:部门排序;
- parentDeptIntegrationId:根部门传
"0",子部门填写父部门的集成方 integrationId;
- 成功返回 deptId(SView 内部部门 ID,集成开发方可按需记录,业务主要还是使用 integrationId)。
- Header:Authorization 为
- 循环批量创建员工成员 接口:
POST /login‑register/open‑api/employees- Header:Authorization 为
Bearer {客户端access_token}+ 全套公共 Header;Content‑Type=application/json; - Body 入参:
- integrationId:集成开发方用户唯一标识(后续个人登录核心字段);
- mobile:手机号,必填;
- name:用户姓名;
- password:不传自动生成 6 位随机密码;
- roleCode:
ROLE_GENERAL普通用户 /ROLE_ENT_CHILD_ADMIN子管理员(系统最多支持 3 个管理员账号); - deptIntegrationIds:所属部门 integrationId,多个使用英文逗号分隔,部门必须已提前创建;
- remark:备注信息;
- 成功返回 userId(SView 内部用户 ID)。
- Header:Authorization 为
集成开发方需要留存的数据
务必保存每个员工的integrationId,后续获取个人 Token、加入项目全部依赖该字段。
高频踩坑说明
- 颠倒部门创建顺序,子部门先于父部门提交,返回业务异常;
- 重复提交相同 integrationId(部门 / 用户)触发报错;
- 使用客户端 Token 调用文件、项目接口,返回鉴权 / 业务报错;文件项目业务必须使用个人身份 Token。