钉钉获取公司所有员工的方法及代码

java 文章 2020-12-31 14:52 2258 0 全屏看文

AI助手支持GPT4.0

钉钉也没提供直接的方法。钉钉官方给出的办法就是先遍迭代所有部门,再枚举出所有的用户。

网上也没现成的代码所以自己写了一个

首先准备好两个方法:

  1. 获取公司所有部门和子部门

  2. 获取部门下所有的员工


获取部门方法和部门用户方法如下:

/**
 * 根据父节点遍历所有的子节点
 * @from sanshu.cn
 * @param deptId 部门编号
 * @return
 * @throws ApiException
 */
public OapiDepartmentListResponse getDeptList(String id,boolean  fetchChild) throws ApiException{
	DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/department/list");
	OapiDepartmentListRequest request = new OapiDepartmentListRequest();
	request.setId(id);
	request.setHttpMethod("GET");
	request.setFetchChild(fetchChild);
	OapiDepartmentListResponse response = client.execute(request, accessTokenUtil.getToken());
	System.out.println(response.getBody());
	return response;
	
}

/**
 * 根据获取用户编号
 * @from sanshu.cn
 * @param deptId 部门编号
 * @return
 * @throws ApiException
 */
public List<String> getUsersIdByDeptId(String deptId) throws ApiException {
		DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/getDeptMember");
		OapiUserGetDeptMemberRequest req = new OapiUserGetDeptMemberRequest();
		req.setHttpMethod("GET");
		req.setDeptId(deptId);
		OapiUserGetDeptMemberResponse rsp = client.execute(req,accessTokenUtil.getToken());
		System.out.println(rsp.getBody());
		return rsp.getUserIds();
}


最后是把上面两个方法串起来的代码:

@Test
public void getAllUser() throws ApiException {
	//String rootDept = "362217315";
	String rootDept = "225228641";
	OapiDepartmentListResponse resp = dingDeptService.getDeptList(rootDept,true);
	if(!resp.isSuccess()) {
		System.err.println(resp.getMessage());
	}else {
		resp.getDepartment().forEach(d->{
			System.out.println(d.getId()+"->"+d.getName());
			try {
				List<String> usersId = dingUserService.getUsersIdByDeptId(d.getId().toString());
				usersId.forEach(u->{
					System.out.println("---"+u);
				});
			} catch (ApiException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		});
	}
}

最终运行结果:

image.png


-EOF-

AI助手支持GPT4.0


国内超级便宜服务器

摸鱼人热门新闻聚合

钻级赞助商 我要加入

开发者在线工具

第三方支付技术请加QQ群

相关文章
Java获取文件的可播放文件路径
java一行代码判断2个数组里是否有相同的值
intellij idea 2023 tomcat配置
springboot整合mybaitsplus和达梦数据库分页/fastjson/时间转换
Java中基础类型转为封装类的简介说明
随便看看
为什么公众号文章预览时会出现undefined呢? 732
微信小程序,个人注册开通和企业注册开通有什么区别吗? 769
有个疑问,什么时候我们需要用到云开发? 570
家里海参可以发吗? 575
企业打款到零钱一直提示我余额不足 商户号明明有钱啊 1004
企业付款到零钱 证书错误 788
小程序2M大小限制,能提升下吗?太小了了。图片都放到服务器了。就代码超过2M。太小了 743
开发工具提示无效的 appJSON["lazyCodeLoading"] 5482
小程序跳转外部页面并跳回问题? 698
小程序 监听video? 942