官方文档:获取部门列表

请求说明 :

请求方式:GET(HTTPS
请求地址:https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=ACCESS_TOKEN&id=ID

参数 必须 说明
access_token 调用接口凭证
id 部门id。获取指定部门及其下的子部门(以及子部门的子部门等等,递归)。 如果不填,默认获取全量组织架构

权限说明:
只能拉取token对应的应用的权限范围内的部门列表
返回结果:

  1. {
  2. "errcode": 0,
  3. "errmsg": "ok",
  4. "department": [
  5. {
  6. "id": 2,
  7. "name": "广州研发中心",
  8. "name_en": "RDGZ",
  9. "department_leader":["zhangsan","lisi"],
  10. "parentid": 1,
  11. "order": 10
  12. },
  13. {
  14. "id": 3,
  15. "name": "邮箱产品部",
  16. "name_en": "mail",
  17. "department_leader":["lisi","wangwu"],
  18. "parentid": 2,
  19. "order": 40
  20. }
  21. ]
  22. }

返回参数说明:

参数 说明
errcode 返回码
errmsg 对返回码的文本描述内容
department 部门列表数据。
id 创建的部门id
name 部门名称,代开发自建应用需要管理员授权才返回;此字段从2019年12月30日起,对新创建第三方应用不再返回,2020年6月30日起,对所有历史第三方应用不再返回name,返回的name字段使用id代替,后续第三方仅通讯录应用可获取,未返回名称的情况需要通过通讯录展示组件
来展示部门名称
name_en 英文名称,此字段从2019年12月30日起,对新创建第三方应用不再返回,2020年6月30日起,对所有历史第三方应用不再返回该字段
department_leader 部门负责人的UserID;第三方仅通讯录应用可获取
parentid 父部门id。根部门为1
order 在父部门中的次序值。order值大的排序靠前。值范围是[0, 2^32)

JAVA程序

  1. @Override
  2. public Integer saveAllFromWx() {
  3. //企业微信获取部门的api地址
  4. String url = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token={ACCESS_TOKEN}";
  5. //根据通讯录密钥获取的token
  6. String token = baseNumvarService.getAccessTokenBySecret(baseNumvarService.getSecret_txl());
  7. HashMap<String, Object> hashMap = MapUtils.newHashMap();
  8. hashMap.put("ACCESS_TOKEN", token);
  9. //http请求
  10. Map forObject = restTemplate.getForObject(url, Map.class, hashMap);
  11. //获取返回结果里的department结果
  12. ArrayList list = (ArrayList) forObject.get("department");
  13. int n = 0;
  14. for (Object o : list) {
  15. //map转JSON字符串
  16. String jsonString = JSONObject.toJSONString(o);
  17. //字符串转java对象
  18. WxDepartment wxDepartment = JSON.parseObject(jsonString, WxDepartment.class);
  19. //设置排序,因为order在mysql里是系统字符串有冲突
  20. wxDepartment.setSortnum(wxDepartment.getOrder());
  21. //新增或更新
  22. saveOrUpdate(wxDepartment);
  23. n++;
  24. }
  25. return n;
  26. }