QQ互联官网
注册开发者,创建应用,创建好的应用我们有我们需要的三个参数,APPID、APPKey、回调地址
APPID、APPKey、回调地址.png
这里验证不需要通过,随便填做测试就可以,等上线改就可以了。不过只能自己的QQ授权。
官方已经不再提供Java的SDK了,只有JS和PHP的。我这里是在网上搜以前的JavaSDK。
这里填写的时候注意空格,有空格有可能获取不到AccessToken。
qqconnectconfig.properties.png
//QQ的pom:
net.gplatform
Sdk4J
2.0
//拼接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(); //返回码*/