企业微信获取成员详细信息

项目场景:

企业微信目前没有办法直接获取用户敏感信息,现在只能分两步,如下:


1.获取成员user_ticket

开始开发 - 接口文档 - 企业微信开发者中心

根据token和code获取成员基本信息:代码如下

        token和code获取可看文档,后期补

/**
 * 调用接口获取用户信息
 *
 * @param token
 * @param code
 * @return
 */
public static QYWxUserResult oAuth2GetUserByCode(String token, String code) {
    //根据token和code获取用户信息API
    String qyUserUrl = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token="+token+"&code="+code;
    String resultMsg = HttpRequestUtil.doGet(qyUserUrl);
    resultMsg = "["+resultMsg+"]";
    //把读出来的json文件换换为实体
    List results = JSONObject.parseArray(resultMsg, QYWxUserResult.class);
    log.info("userResults: "+ results.get(0));
    // 如果请求成功
    if (results.get(0).getErrcode() == 0) {
        boolean b = results.get(0).getErrcode() == 0;
        log.info("b: "+ b);
        return results.get(0);
    }
    return null;
}

得到引用:

QYWxUserResult result = WeiXinQiYeUtil.oAuth2GetUserByCode(token, code);
log.info("result: "+result);
String user_ticket = result.getUser_ticket();

/**
 * 企业微信获取用户信息
 */
@Data
public class QYWxUserResult {

    private Integer errcode;
    private String UserId;
    private String DeviceId;
    private String errmsg;
    private String user_ticket;
}

获取敏感信息

public void getUserMsg(String token, String user_ticket) {
    String url = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserdetail?access_token="+token;

    JSONObject jsonParms = new JSONObject();
    jsonParms.put("user_ticket", user_ticket);
    String json = jsonParms.toJSONString();
    String jsonObj = HttpRequestUtil.doPostWithJson(url,json);
    //获取用户敏感信息
    JSONObject jsonObject = JSON.parseObject(jsonObj);
    String mobile = jsonObject.getString("mobile");
    String email = jsonObject.getString("email");
    String userid= jsonObject.getString("userid");
    
}

HttpRequestUtil.doPostWithJson方法有发布过

网络请求工具类_DS贵族的博客-CSDN博客

你可能感兴趣的:(微信)