企业微信开发:获取用户信息(四)

前言

  这篇文章原本应该是和上一篇连着一起写出来的,但是我感觉吧分开写比较清晰一点。。
  本文主要实现目的目标需求为:企业微信登录获取人员信息

概述

  直接进入正文,本文需要用到的参数为 code 和 access_token
    1.获取 code 请看:企业微信开发:网页授权登录
    2.获取 access_token 请看:企业微信开发:获取 access_token

根据已经获取的 access_token 和 code 换成员信息

  请求方式: GET(HTTPS)
  请求地址: https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE
  参数说明:

参数必须说明
access_token调用接口凭证
code通过网页授权获取到的code,最大为512字节。每次授权带上的 code 将不一样,code只能使用一次,5分钟未被使用自动过期

代码片段

  这个是我自定义的一个工具类,主要是用来获取成员信息的 ,返回值可定义为 String 或者自定义对象这个地方就不提供了

/**
 * @ClassName:UserIDAPI
 * @Description:TODO 获取访问用户身份
 * @Author LinLuoChen
 * @Date 2020/8/13/15:17
 * @Version V1.0
 **/
public class UserIdAPI {

    // 企业微信获取访问用户身份  
    private final static String qy_user_url = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE";

    //获取访问用户身份
    public static UserID getUserIdInfo(String ACCESSTOKEN,String CODE){
        UserID userID = new UserID();
        String requestURL = qy_user_url.replace("ACCESSTOKEN", ACCESSTOKEN).replace( "CODE", CODE);
        JSONObject jsonObject = HttpRequestUtil.httpRequest(requestURL, EnumMethod.GET.name(), null);
        // 如果请求成功
        if (jsonObject != null) {
            try {
                System.out.println("获取访问用户身份接口返回信息:"+jsonObject);
                //  这个地方我只拿了我用的
                userID.setUserId(jsonObject.getString("UserId"));
                userID.setDeviceId(jsonObject.getString("DeviceId"));
            } catch (Exception e) {
                userID = null;
            }
        }
        // 返回类型可自定义
        return userID;
    }
}

  调用方法

public static void main(String[] args) {
   UserID userID = UserIdAPI.getUserIdInfo(accessToken,code);
   System.out.println("获取用户信息为:"+userID);
}

测试结果

  当用户为企业成员时返回示例如下

{
   "errcode": 0,
   "errmsg": "ok",
   "UserId":"USERID",
   "DeviceId":"DEVICEID",
   "user_ticket": "USER_TICKET",
   "expires_in":7200
}

  参数说明:

参数说明
errcode返回码
errmsg对返回码的文本描述内容
UserId成员UserID
DeviceId手机设备号(由企业微信在安装时随机生成,删除重装会改变,升级不受影响)
user_ticket成员票据,最大为512字节。
scope为snsapi_userinfo或snsapi_privateinfo,且用户在应用可见范围之内时返回此参数。
后续利用该参数可以获取用户信息或敏感信息。
expires_inuser_ticket的有效时间(秒),随user_ticket一起返回

  非企业成员授权时返回示例如下

{
   "errcode": 0,
   "errmsg": "ok",
   "OpenId":"OPENID",
   "DeviceId":"DEVICEID"
}
参数说明
errcode返回码
errmsg对返回码的文本描述内容
OpenId非企业成员的标识,对当前企业唯一
DeviceId手机设备号(由企业微信在安装时随机生成,删除重装会改变,升级不受影响)

  出错返回示例:

{
   "errcode": 40029,
   "errmsg": "invalid code"
}
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平凡的人类

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值