`
zysnba
  • 浏览: 188188 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

企业微信通过code获取用户基本信息

 
阅读更多
    @GetMapping(value = "/loginByCode")
    @ApiOperation(value = "企业微信根据code获取用户的基本信息")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "code", value = "code", dataType = "string", paramType = "query", required = true)
    })
    public ResultBean<UserBaseInfoVO> loginByCode(String code) {
        try {
            return webChatService.loginByCode(code);
        } catch (Exception e) {
            log.error("企业微信根据code获取用户的基本信息异常:", e);
            return ResultBean.error(e.getMessage());
        }
    }




  @Override
    public ResultBean<ChatUserBaseInfoVO> loginByCode(String code) {
        logger.info("企业微信用户开始登陆 code = {}", code);
        //校验数据
        if (StringUtils.isBlank(code)) {
            return ResultBean.error("code不能为空");
        }
        String result = HttpUtil.get(String.format(“企业微信获取用户id接口”, getAccessToken(), code));
        logger.info("从企业微信获取用户基本信息 result = {}", result);
        JSONObject resultJson = JSONObject.parseObject(result);
        int errcode = (int) resultJson.get("errcode");
        ChatUserBaseInfoVO chatUserBaseInfoVO = null;
        if (errcode == 0) {
            //获取用户userId
            String userId = (String) resultJson.get("UserId");
            String resutUserinfo = HttpUtil.get(String.format(“获取用户的基本信息接口”, getAccessToken(), userId));
            logger.info("从企业微信获取用户详情信息 result = {}", resutUserinfo);
            chatUserBaseInfoVO = JSONObject.parseObject(resutUserinfo, ChatUserBaseInfoVO.class);
            logger.info("从企业微信获取用户基本信息 实体转换 enterpriseUserBaseInfoBO = {}", JSONObject.toJSONString(chatUserBaseInfoVO));
        }
        return ResultBean.ok(chatUserBaseInfoVO);
    }



/**
     * 功能说明:获取AccessToken(企业号的全局唯一票据)
     * 修改说明:
     *
     * @return 返回企业号的全局唯一票据json字符串
     * @throws IOException
     * @author zys
     * @date 2021年07月30日 上午10:06:37
     */
    public String getAccessToken() {
        //先从缓存获取accessToken
        String accessToken = String.valueOf(redisUtils.get(RedisKeyConstants.ACCESSTOKEN));
        logger.info("获取redis缓存的accessToken = {}", accessToken);
        if (StringUtils.isNotBlank(accessToken) && !StringUtils.equals("null", accessToken)) {
            return accessToken;
        }
        Map<String, Object> param = Maps.newHashMap();
        param.put("corpid", "你的企业微信");
        param.put("corpsecret", "你的密钥");
        logger.info("获取access_token参数 param = {}", JSONObject.toJSONString(param));
        String result = HttpUtil.get(Global.ACCESSTOKENURL, param);
        logger.info("获取access_token是调用企业微信API返回的结果:" + result);
        JSONObject resultJson = JSONObject.parseObject(result);
        int errcode = (int) resultJson.get("errcode");
        if (errcode == 0) {
            //获取access_token
            accessToken = (String) resultJson.get("access_token");
            //存放两个小时 7200
            int expiresIn = (int) resultJson.get("expires_in");
            redisUtils.set(RedisKeyConstants.ACCESSTOKEN, accessToken, expiresIn);
        } else {
            logger.info("获取企业access_token失败");
        }
        return accessToken;
    }


如果对你有帮助请给小弟打赏下,祝你成功。


分享到:
评论

相关推荐

    ASP.NET网页微信登录授权,获取用户基本信息

    3、通过access_token和用户的openId获取该用户的用户信息 因为第一步必须要经过微信的登录授权,不能网页后端请求,所以先要经过用户同意,通过页面网页请求组装的微信请求链接。请求该链接, 获取code后,后端...

    java获取微信用户信息

    - 有了access_token和openid,你可以通过微信API获取用户的基本信息,如昵称、头像等。 2. **OAuth2.0实现细节**: - **授权请求**:构建请求链接,包含你的AppID、redirect_uri(回调URL)、scope(请求权限范围...

    只需要两行代码 实现PHP微信登录及获得用户信息

    由于我们之前设置了`scope`为`snsapi_base`,只能获取到openid对应的微信用户基本信息(不包括昵称、头像等),如果需要这些信息,需在第一步设置`scope`为`snsapi_userinfo`。现在展示如何获取基本的用户信息: ``...

    企业微信开发实操考试.pdf

    - 通过企微后台获取用户授权码code,并使用access_token和code获取用户信息,完成用户登录状态设置。 - 实现建议包括增加登录态缓存,减少对OAuth2的重复调用,优化用户体验。 4. JS-SDK接口实现: - 在企业微信...

    js微信网页授权登录获取详细信息

    拿到access_token和openid后,可以通过微信的接口获取用户的基本信息,如昵称、头像、性别等。对于企业微信,还可以获取到用户的企业信息,如部门、职位等。 3. **企业微信授权登录** 企业微信授权登录与微信网页...

    ASP版 企业微信API之授权登录

    5. **获取用户信息**:有了access_token和openid,可以调用企业微信API获取用户的基本信息,如昵称、头像等。需要注意的是,这部分信息可能需要用户额外授权。 6. **ASP编程基础**:在ASP环境下,使用HTTP请求库...

    基于Winfrom的企业微信扫码登录案例

    - 使用access_token和openid获取用户基本信息。 2. **Winform实现扫码登录**: - 在Winform界面设计中,可以添加一个PictureBox控件显示二维码图片,一个Label用于提示用户操作,以及一个Button用于触发扫码流程...

    java获取微信用户信息源码

    在微信API中,OAuth2.0主要用于获取用户的微信基本信息,如昵称、头像等。使用OAuth2.0,开发者无需获取用户的微信账号密码,而是通过授权流程引导用户同意,从而获取一个Access Token,这个Token可以用来请求微信...

    企业微信授权登录.rar

    4. **获取用户信息**:有了访问令牌,第三方应用可以调用企业微信的API获取用户的基本信息,如openid,进而实现用户登录。 5. **刷新令牌**:访问令牌有有效期,过期后需要使用刷新令牌来获取新的访问令牌。刷新...

    工作小记:企业微信 嵌H5页面 用户权限获取匹配.doc

    - 获取到授权码后,前端将code传递给后端,后端通过调用企业微信API获取access_token并进一步获取用户信息。 #### 四、实现过程详解 1. **构造授权连接** - 构造授权连接时,需要注意以下参数: - `appid`:...

    authorize_企业微信授权示例_

    - 使用获取到的Access Token,应用可以向企业微信API发送请求,获取用户的基本信息,如openid、昵称、头像等。注意,这一步需要在获取到的Access Token有效期内完成,因为Access Token有其生命周期,过期后需使用...

    .NET Core 企业微信网页授权登录.doc

    .NET Core 企业微信网页授权登录 .NET Core 企业微信网页授权登录是指使用微信企业号的 OAuth2 授权机制来实现网页登录的功能。在这个过程中,需要获取企业的唯一标识 corpid 和访问密钥 secret,然后使用这两个...

    C#实现微信企业号API服务端调用封装

    1.5 获取企业号应用的基本信息,包括头像、昵称、帐号类型、认证类型、可见范围等信息,管理组须拥有指定应用的发消息权限。 1.6 生成企业获取Code URL 1.7 获取授权用户信息 1.8 获取调用JSAPI接口的临时票证 2、...

    微信企业号开发实例(java版)

    在用户同意授权后,应用可以获取到code,通过code换取access_token和openid,从而识别用户身份并进行后续操作,如获取用户基本信息。 5. **媒体文件的上传下载**:微信企业号支持上传图片、语音、视频等媒体文件,...

    微信企业号二次验证接口PHP代码

    微信企业号二次验证接口是微信为企业用户提供的一个增强安全性的功能,它允许企业在用户完成基本认证后,通过自定义的验证流程进一步确认用户身份。在本案例中,我们讨论的是如何使用PHP语言来实现这个接口。 首先...

    微信企业号java版开发实例

    在微信企业号中,OAuth2.0用于网页端的用户授权,用户在微信内点击授权后,可以跳转回企业号的指定页面并携带code,开发者通过code换取openid和access_token,从而实现用户的登录或权限验证。 5. **媒体文件的上传...

    C#微信网站登录doem

    5. **获取用户信息**:如果在步骤2中选择了snsapi_userinfo,我们还可以进一步获取用户的基本信息,如昵称、头像等。这需要再次向微信服务器发起请求,携带Access Token和OpenID。 6. **用户登录与验证**:在后端,...

    C#语言实现网页微信扫码登录.zip

    获得Access Token后,你可以调用微信的用户信息接口,获取用户的微信昵称、头像等基本信息。这些信息可以用来创建或更新用户账户,完成登录流程。 在C#中,你可能需要使用异步编程来处理网络请求,避免阻塞UI线程。...

    微信企业号OAuth2验证接口的2种实例(使用SpringMVC)

    在微信企业号中,OAuth2主要用于获取用户在企业号内的权限,例如获取用户基本信息、授权进行特定操作等。本文将深入探讨两种使用SpringMVC实现微信企业号OAuth2验证接口的方法。 一、注解方式实现OAuth2验证 1. ...

    微信oauth2.0授权

    4. 获取用户信息:有了Access Token和openid,开发者可以进一步请求微信服务器获取用户的基本信息,如昵称、头像等。 三、实际应用 在实际的开发过程中,微信OAuth2.0通常用于实现以下功能: - 第三方登录:用户...

Global site tag (gtag.js) - Google Analytics