打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
java server qq第三方登录接口
第一步: https://connect.qq.com,去这个网站申请,会得到appId,appKey
第二步: https://connect.qq.com--文档资料里下载---SDK及资源下载---【Java SDK v2.0】
第三步:按照sdk的使用说明1、吧Sdk4J.jar导入到项目中;2、qqconnectconfig.properties放到                  src下,修改 前4项

在本地测试
注意:1、qqconnectconfig.properties-->  redirect_URI--必须和你申请的网站回调域一样
           2、修改c:/Windows/System32/drivers/etc/HOSTS---添加 127.0.0.1 www.baidu.com                        网站地址(
cmd[批处理]   ipconfig flushdns  )重新执行一下,使你修改的hosts文件                 生效
           3、修改你的tomcat 端口为80,
           4、如果你的网站回调域没有带项目名称(需要你把项目的propertis --myeclipse--web 配                置 去掉项目名)
jsp页面
<a href="qq/list后台方法">登录</a>

后台controller
  @RequestMapping("/qq/list")
    public void list(HttpServletResponse response,HttpServletRequest request) throws IOException, QQConnectException{
        response.setContentType("text/html;charset=utf-8");
        //一定要用这句话去弹出qq登录窗口,否则AccessToken会提示没有获取到响应参数
        response.sendRedirect(new Oauth().getAuthorizeURL(request));        
    }      



申请 网站回调域-到后台的方法
@RequestMapping("/index.html")
    public String showIndexHtml(String code,String state,HttpServletRequest request,HttpServletResponse response) throws IOException, QQConnectException{
       
        UserInfoBean user=QQUtils.createUserInfo(request);
        System.out.println("user.getNickname()= "+user.getNickname());
        return "qq/list";
    }


qqUtil类
public class QQUtils {

    /**
     * 利用获取到的accessToken,openid 去获取用户在Qzone的昵称等信息
     * @param request
     * @return
     */
    public static UserInfoBean createUserInfo(HttpServletRequest request){
        UserInfoBean userInfoBean=null;
         try {
             
                String accessToken   = null,
                       openID        = null;
                long tokenExpireIn = 0L;
               
                // 第一步-- 得到token类
                AccessToken accessTokenObj = (new Oauth()).getAccessTokenByRequest(request);
                if (accessTokenObj.getAccessToken().equals("")) {
                    //我们的网站被CSRF攻击了或者用户取消了授权
                    //做一些数据统计工作
                    System.out.println("没有获取到响应参数");
                } else {
                    accessToken = accessTokenObj.getAccessToken();
                    tokenExpireIn = accessTokenObj.getExpireIn();

                    request.getSession().setAttribute("demo_access_token", accessToken);
                    request.getSession().setAttribute("demo_token_expirein", String.valueOf(tokenExpireIn));

                    // 利用获取到的accessToken 去获取当前用的openid -------- start
                    OpenID openIDObj =  new OpenID(accessToken);
                    openID = openIDObj.getUserOpenID();
                   
                    System.out.println("欢迎你,代号为 " + openID + " 的用户!");
                    request.getSession().setAttribute("demo_openid", openID);
//                    // 利用获取到的accessToken 去获取当前用户的openid --------- end


                    System.out.println("<p> start -----------------------------------利用获取到的accessToken,openid 去获取用户在Qzone的昵称等信息 ---------------------------- start </p>");
                    UserInfo qzoneUserInfo = new UserInfo(accessToken, openID);
                    userInfoBean = qzoneUserInfo.getUserInfo();
                    if (userInfoBean.getRet() == 0) {
                        System.out.println(userInfoBean.getNickname() + "<br/>");
                        System.out.println(userInfoBean.getGender() + "<br/>");
                    } else {
                        System.out.println("很抱歉,我们没能正确获取到您的信息,原因是: " + userInfoBean.getMsg());
                    }
                    System.out.println("<p> end -----------------------------------利用获取到的accessToken,openid 去获取用户在Qzone的昵称等信息 ---------------------------- end </p>");

                }
            } catch (QQConnectException e) {
            }
           
            return userInfoBean;
    }
   
   
   
   
}





本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
使用Golang开发微信公众平台
191119_01 网站集成QQ第三方登录
web实现QQ第三方登录
Java实现QQ登录和微博登录
QQ登陆网站实例代码
QQ互联OAuth2.0 .NET SDK 发布以及网站QQ登陆示例代码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服