Java QQ授权第三方登陆

2019-01-20  本文已影响0人  Felix_Fang

QQ互联官网
注册开发者,创建应用,创建好的应用我们有我们需要的三个参数,APPID、APPKey、回调地址

APPID、APPKey、回调地址.png
这里验证不需要通过,随便填做测试就可以,等上线改就可以了。不过只能自己的QQ授权。
官方已经不再提供Java的SDK了,只有JS和PHP的。我这里是在网上搜以前的JavaSDK。
这里填写的时候注意空格,有空格有可能获取不到AccessToken。
qqconnectconfig.properties.png
//QQ的pom:
<dependency>
            <groupId>net.gplatform</groupId>
            <artifactId>Sdk4J</artifactId>
            <version>2.0</version>
        </dependency>

//拼接URL

@RequestMapping("/qqLogin")
    public String QQLogin(HttpServletRequest request, HttpServletResponse response) throws Exception {
        String authorizeUrl = (new com.qq.connect.oauth.Oauth().getAuthorizeURL(request));
        System.err.println("url>>>> " + authorizeUrl);
        return "redirect:" + authorizeUrl;
    }

授权后跳转回调地址

@Override
    public Result qqLogin(HttpServletRequest request, HttpServletResponse response) throws IOException, QQConnectException {
        AccessToken accessTokenObj = (new Oauth()).getAccessTokenByRequest(request);
        String accessToken = null, openID = null;
        // 用户授权的时候取消了
        if (accessTokenObj.getAccessToken().equals("")) {
            System.out.print("没有获取到响应参数");
            return null;
        }
        accessToken = accessTokenObj.getAccessToken();
        // 用户QQ的个人信息
        OpenID openIDObj = new OpenID(accessToken);
        openID = openIDObj.getUserOpenID(); // onpenId是QQ用户的唯一标示
        UserInfo qzoneUserInfo = new UserInfo(accessToken, openID);//TOKEN
        UserInfoBean userInfoBean = qzoneUserInfo.getUserInfo();
        String nickname = userInfoBean.getNickname();//用户在QQ空间的昵称。
        String avatar = userInfoBean.getAvatar().getAvatarURL100(); //头像集合,大小:30、50、100   /*String gender = userInfoBean.getGender(); //性别。 如果获取不到则默认返回"男"、String msg = userInfoBean.getMsg(); //如果ret<0,会有相应的错误信息提示,返回数据全部用UTF-8编码。、Integer level = userInfoBean.getLevel();、Integer ret = userInfoBean.getRet(); //返回码*/ 
上一篇 下一篇

猜你喜欢

热点阅读