请求说明 :
请求方式:GET(HTTPS)
请求地址:https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=ACCESS_TOKEN&id=ID
参数 | 必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
id | 否 | 部门id。获取指定部门及其下的子部门(以及子部门的子部门等等,递归)。 如果不填,默认获取全量组织架构 |
权限说明:
只能拉取token对应的应用的权限范围内的部门列表
返回结果:
{
"errcode": 0,
"errmsg": "ok",
"department": [
{
"id": 2,
"name": "广州研发中心",
"name_en": "RDGZ",
"department_leader":["zhangsan","lisi"],
"parentid": 1,
"order": 10
},
{
"id": 3,
"name": "邮箱产品部",
"name_en": "mail",
"department_leader":["lisi","wangwu"],
"parentid": 2,
"order": 40
}
]
}
返回参数说明:
参数 | 说明 |
---|---|
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程序
@Override
public Integer saveAllFromWx() {
//企业微信获取部门的api地址
String url = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token={ACCESS_TOKEN}";
//根据通讯录密钥获取的token
String token = baseNumvarService.getAccessTokenBySecret(baseNumvarService.getSecret_txl());
HashMap<String, Object> hashMap = MapUtils.newHashMap();
hashMap.put("ACCESS_TOKEN", token);
//http请求
Map forObject = restTemplate.getForObject(url, Map.class, hashMap);
//获取返回结果里的department结果
ArrayList list = (ArrayList) forObject.get("department");
int n = 0;
for (Object o : list) {
//map转JSON字符串
String jsonString = JSONObject.toJSONString(o);
//字符串转java对象
WxDepartment wxDepartment = JSON.parseObject(jsonString, WxDepartment.class);
//设置排序,因为order在mysql里是系统字符串有冲突
wxDepartment.setSortnum(wxDepartment.getOrder());
//新增或更新
saveOrUpdate(wxDepartment);
n++;
}
return n;
}