API文档说明:

https://developer.work.weixin.qq.com/document/path/90196

基本概念介绍

https://developer.work.weixin.qq.com/document/path/90665
在通讯录同步助手中此接口可以读取企业通讯录的所有成员的信息,而自建应用可以读取该应用设置的可见范围内的成员信息。
请求方式:GET(HTTPS
请求地址:https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&userid=USERID
参数说明:

参数 必须 说明
access_token 调用接口凭证
userid 成员UserID。对应管理端的帐号,企业内必须唯一。不区分大小写,长度为1~64个字节

access_token获取方法

方法1,点击文档里的“调试工具”

https://open.work.weixin.qq.com/wwopen/devtool/interface?doc_id=10019
填写corpsecret,就可以获取到access_token
image.png

方法2、还可以通过接口获取

JAVA获取企业微信的access_token

corpsecret获取方法

image.png
image.png
这个地方,“查看”和“重新获取”应该都可以得到corpsecret

userid获取

image.png
这个地方帐号信息,就是userid

第一步:获取部门成员的信息

参考官方API文档:获取部门成员-简单信息
封装java请求方法

  1. public List<Map<String, Object>> getSimplelistByDepartmentId(Integer id) {
  2. if (id == null) {
  3. id = 1;//默认根部门
  4. }
  5. //获取部门成员
  6. String url = "https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?access_token={ACCESS_TOKEN}&department_id={DEPARTMENT_ID}&fetch_child=1";
  7. HashMap<String, Object> map = MapUtils.newHashMap();
  8. map.put("ACCESS_TOKEN", baseNumvarService.getAccessTokenBySecret(baseNumvarService.getSecret_txl()));
  9. map.put("DEPARTMENT_ID", id);
  10. Map forObject = restTemplate.getForObject(url, Map.class, map);
  11. if ((Integer) forObject.get("errcode") == 0) {
  12. return (List<Map<String, Object>>) forObject.get("userlist");
  13. }
  14. return null;
  15. }

参考官方API文档:获取部门成员-详细信息

  1. public List<Map<String, Object>> getlistByDepartmentId(Integer id) {
  2. if (id == null) {
  3. id = 1;//默认根部门
  4. }
  5. //获取部门成员
  6. String url = "https://qyapi.weixin.qq.com/cgi-bin/user/list?access_token={ACCESS_TOKEN}&department_id={DEPARTMENT_ID}&fetch_child=1";
  7. HashMap<String, Object> map = MapUtils.newHashMap();
  8. map.put("ACCESS_TOKEN", baseNumvarService.getAccessTokenBySecret(baseNumvarService.getSecret_txl()));
  9. map.put("DEPARTMENT_ID", id);
  10. Map forObject = restTemplate.getForObject(url, Map.class, map);
  11. if ((Integer) forObject.get("errcode") == 0) {
  12. return (List<Map<String, Object>>) forObject.get("userlist");
  13. }
  14. return null;
  15. }