要批量获取钉钉用户的UnionId,可以使用钉钉开放平台提供的"批量获取用户详情"接口(user/get)来实现。以下是具体的步骤:
1.获取要查询的用户userid列表:在调用批量获取用户详情接口之前,需要先获取要查询的用户userid列表。可以使用"获取部门用户userid列表"接口(department/user/simplelist)或者"获取企业员工人数"接口(user/get_org_user_count)等接口获取员工userid列表。
2.调用批量获取用户详情接口:调用批量获取用户详情接口(user/get)时,需要传递要查询的用户userid列表,并设置返回结果中需要包含unionid字段。具体参数包括:
要批量获取钉钉用户的unionId,您可以使用钉钉开放平台提供的"批量获取用户详情"接口(user/get)。首先,您需要获取要查询的用户userid列表。
具体步骤如下:
先获取部门id,在循环获取的部门id获取部门对应的用户unionId
调用服务端API-获取子部门ID列表接口,逐级遍历获取该企业下所有部门的ID。
public void departmentListSubId() throws ApiException {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/listsubid");
OapiV2DepartmentListsubidRequest req = new OapiV2DepartmentListsubidRequest();
req.setDeptId(1L);
OapiV2DepartmentListsubidResponse rsp = client.execute(req, "access_token");
System.out.println(rsp.getBody());
}
根据各个部门ID,分别调用服务端API-获取部门用户详情接口,分别获取每个部门下的员工详情信息。
public void departmentUserInfo() throws ApiException {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/list");
OapiV2UserListRequest req = new OapiV2UserListRequest();
req.setDeptId(1L);
req.setCursor(0L);
req.setSize(10L);
req.setOrderField("modify_desc");
req.setContainAccessLimit(false);
req.setLanguage("zh_CN");
OapiV2UserListResponse rsp = client.execute(req, "access_token");
System.out.println(rsp.getBody());
}
getBody()的内容示例
{
"errcode":"0",
"result":{
"next_cursor":"10",
"has_more":"true",
"list":{
"leader":"true",
"extension":"{\"爱好\":\"旅游\",\"年龄\":\"24\"}",
"unionid":"z21HjQliSzpw0YWCNxmii6u2Os62cZ62iSZ",
"boss":"true",
"exclusive_account":"false",
"admin":"true",
"remark":"备注备注",
"title":"技术总监",
"hired_date":"1597573616828",
"userid":"zhangsan",
"work_place":"未来park",
"dept_id_list":"[2,3,4]",
"job_number":"4",
"email":"test@xxx.com",
"dept_order":"1",
"mobile":"18513027676",
"active":"true",
"telephone":"010-86123456-2345",
"avatar":"xxx",
"hide_mobile":"false",
"org_email":"test@xxx.com",
"name":"张三",
"state_code":"86"
}
},
"errmsg":"ok"
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。