Java QQ授權第三方登陸

weixin_34290000發表於2019-01-20

QQ互聯官網
註冊開發者,建立應用,建立好的應用我們有我們需要的三個引數,APPID、APPKey、回撥地址

15570722-6ef83610bdb914e3.png
APPID、APPKey、回撥地址.png

這裡驗證不需要通過,隨便填做測試就可以,等上線改就可以了。不過只能自己的QQ授權。
官方已經不再提供Java的SDK了,只有JS和PHP的。我這裡是在網上搜以前的JavaSDK。
這裡填寫的時候注意空格,有空格有可能獲取不到AccessToken。
15570722-33ed5c15a7e4af0a.png
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(); //返回碼*/ 

相關文章