第一步: 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;
}
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。