历史版本2 :API取数-钉钉获取部门列表 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

用户想要同步钉钉通信录中的部门信息和用户信息。

1.2 接口说明

接口文档详情参见:获取部门列表获取企业内部应用的access_token获取部门用户详情

1.3 实现思路

由于接口只能获取当前部门的下一级部门基础信息,不支持获取当前部门下所有层级子部门。因此需要依次根据父部门ID递归获取子部门ID,然后遍历循环部门ID,获取用户信息。


2. 操作步骤编辑

2.1 递归获取所有部门ID

2.1.1 新建数据表

由于接口只能获取当前部门的下一级部门基础信息,不支持获取当前部门下所有层级子部门。因此需要依次根据父部门ID递归获取子部门ID。

使用 SQL 脚本,新建数据表 dd_dep 存放 获取部门列表 接口返回值,便于后续对父部门 ID 进行递归获取子部门 ID;

新建数据表 dd_depid 存放 depid 字段,便于后续作为参数写入接口,以及判断是否停止循环。

同时在dd_depid 表中插入一行 为1的数据,便于开始取数(钉钉接口 最上层部门ID默认为1)。

CREATE TABLE
  IF NOT EXISTS `demotest`.`dd_dep` (
    `auto_add_user` varchar(255) NULL DEFAULT NULL,
    `create_dept_group` varchar(255) NULL DEFAULT NULL,
    `dept_id` varchar(255) NOT NULL,
    `name` varchar(255) NULL DEFAULT NULL,
    `parent_id` varchar(255) NULL DEFAULT NULL,
    `taskId` varchar(255) NULL DEFAULT NULL,
    PRIMARY KEY (`dept_id`)
  ) ENGINE = InnoDB CHARACTER
SET
  = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

CREATE TABLE
  IF NOT EXISTS `demotest`.`dd_depid` (`dept_id` varchar(255) NULL DEFAULT NULL) ENGINE = InnoDB CHARACTER
SET
  = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
DELETE FROM dd_dep;
DELETE FROM dd_depid;
INSERT INTO dd_depid (dept_id) VALUES ('1');

2.1.2 获取 accesstoken

使用 获取企业内部应用的access_token 接口获取 access_token。

使用参数赋值,输入 API 信息,获取token,如下图所示:

并将取出的数据设置为参数。如下图所示:

2.1.3 根据服ID 循环递归取出所有部门ID

由于需要循环递归,因此使用循环容器,然后拖入数据转换,从 2.1.1 节落库的 dd_depid 数据表中读取部门ID,如下图所示:


2.2 获取所有用户信息详情


2.3 部门信息与用户信息关联