钉钉获取部门用户
建议执行V2 版本
V1 版本
public static List<Userlist> getUserByDeptId(Long deptId, Long offset, Long size) {
try {
DingTalkClient client = new DefaultDingTalkClient(DingTalkConstant.BASE_URL + "/user/listbypage");
OapiUserListbypageRequest req = new OapiUserListbypageRequest();
req.setDepartmentId(deptId);
req.setOffset(offset * size);
req.setSize(size);
req.setOrder("entry_desc");
req.setHttpMethod("GET");
OapiUserListbypageResponse rsp = client.execute(req, BaseDingTalk.getAccessToken());
List<Userlist> list = rsp.getUserlist();
if (rsp.getHasMore()) {
list.addAll(getUserByDeptId(deptId, offset++, size));
}
return list;
} catch (Exception e) {
log.error("[DingTalk] 获取部门用户失败", e);
}
return null;
}
V2 版本
public static List<OapiV2UserListResponse.ListUserResponse> getUserByDeptId(Long deptId, Long offset, Long size) {
try {
DingTalkClient client = new DefaultDingTalkClient(DingTalkConstant.BASE_URL + "/topapi/v2/user/list");
OapiV2UserListRequest req = new OapiV2UserListRequest();
req.setDeptId(deptId);
req.setCursor(offset * size);
req.setSize(size);
req.setOrderField("modify_desc");
req.setContainAccessLimit(false);
req.setLanguage("zh_CN");
OapiV2UserListResponse rsp = client.execute(req, BaseDingTalk.getAccessToken());
if (!rsp.isSuccess()) {
return null;
}
List<OapiV2UserListResponse.ListUserResponse> list = rsp.getResult().getList();
if (rsp.getResult().getHasMore()) {
list.addAll(getUserByDeptId(deptId, offset++, size));
}
return list;
} catch (Exception e) {
log.error("[DingTalk] 获取部门用户失败", e);
}
return null;
}
版权声明:本文为damys原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。