第一步:获取token
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpId}&corpsecret={corpsecret}
corpId:企业ID,corpsecret:企业密钥
返回数据:
{
"errcode": 0,
"errmsg": "ok",
"access_token": "accesstoken000001",
"expires_in": 7200
}
第二布:在应用上写回调接口,用来接受code
自己得域名必须和企业微信建得应用配置得一致,接口名自己随便起
http://zijiyuming.com/callBack
第三步:获取code
corpId:企业ID,redirect_uri:回调地址(第二布写的地址),agentid:企业应用的id
https://open.weixin.qq.com/connect/oauth2/authorize?appid={corpId}&redirect_uri={redirect_uri}&response_type=code&scope=snsapi_userinfo&agentid={agentid}&state=123#wechat_redirect
注意:必须在微信客户端调用这个接口
在回调函数中获取code:
public Response<String> callBack(HttpServletRequest request) {
String code = request.getParameter("code");
log.info("获取code:{}", code);
return Response.success(code);
}
第四步:通过access_token和code获取用户信息
user_url: https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token={access_token}&code={code}
返回数据:
应用不可见没有user_ticket
{
"UserId":"USERID",
"DeviceId":"DEVICEID"
"user_ticket": "USER_TICKET",
"expires_in":7200
}
第五步:通过通过access_token和user_ticket获取用户详情信息
Https请求方式:POST
https://qyapi.weixin.qq.com/cgi-bin/user/getuserdetail?access_token={access_token}
参数:
{
"user_ticket": "USER_TICKET"
}
返回用户信息:
{
"userid":"lisi",
"name":"李四",
"department":[3],
"position": "后台工程师",
"mobile":"15050495892",
"gender":1,
"email":"xxx@xx.com",
"avatar":"http://shp.qpic.cn/bizmp/xxxxxxxxxxx/0"
}