package
com.fanbaobao.action;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
import
javax.servlet.http.HttpSession;
import
com.fanbaobao.service.FbbUser;
import
com.fanbaobao.service.FbbService.Client;
import
com.fanbaobao.util.FbbUtil;
import
com.qq.connect.QQConnectException;
import
com.qq.connect.api.OpenID;
import
com.qq.connect.api.qzone.PageFans;
import
com.qq.connect.api.qzone.UserInfo;
import
com.qq.connect.javabeans.AccessToken;
import
com.qq.connect.javabeans.qzone.PageFansBean;
import
com.qq.connect.javabeans.qzone.UserInfoBean;
import
com.qq.connect.oauth.Oauth;
public
class
QzoneAction
extends
BaseAction {
private
String errorMsg;
public
String toLogin()
throws
Exception{
this
.getResponse().setContentType(
"text/html;charset=utf-8"
);
try
{
this
.getResponse().sendRedirect(
new
Oauth().getAuthorizeURL(
this
.getRequest()));
}
catch
(QQConnectException e) {
e.printStackTrace();
}
return
null
;
}
public
String doLogin()
throws
Exception{
HttpServletResponse response=
this
.getResponse();
HttpServletRequest request=
this
.getRequest();
HttpSession session=request.getSession();
response.setContentType(
"text/html; charset=utf-8"
);
try
{
AccessToken accessTokenObj =
(
new
Oauth()).getAccessTokenByRequest(request);
String accessToken =
null
,
openID =
null
;
Long tokenExpireIn =
null
;
if
(accessTokenObj.getAccessToken().equals(
""
)) {
errorMsg=
"QQ登录校验失败!"
;
return
LOGIN;
}
else
{
accessToken = accessTokenObj.getAccessToken();
tokenExpireIn = accessTokenObj.getExpireIn();
request.getSession().setAttribute(
"demo_access_token"
, accessToken);
request.getSession().setAttribute(
"demo_token_expirein"
, String.valueOf(tokenExpireIn));
OpenID openIDObj =
new
OpenID(accessToken);
openID = openIDObj.getUserOpenID();
request.getSession().setAttribute(
"demo_openid"
, openID);
UserInfo qzoneUserInfo =
new
UserInfo(accessToken, openID);
UserInfoBean userInfoBean = qzoneUserInfo.getUserInfo();
PageFans pageFansObj =
new
PageFans(accessToken, openID);
PageFansBean pageFansBean = pageFansObj.checkPageFans(
"97700000"
);
com.qq.connect.api.weibo.UserInfo weiboUserInfo =
new
com.qq.connect.api.weibo.UserInfo(accessToken, openID);
com.qq.connect.javabeans.weibo.UserInfoBean weiboUserInfoBean =
weiboUserInfo.getUserInfo();
String user_id=openID;
String nickname=
new
String(userInfoBean.getNickname());
System.out.println(user_id);
System.out.println(nickname);
Client client = FbbUtil.getClient();
FbbUser fbbUser= client.doOauth(
2
, user_id);
session.setAttribute(
"fbbUserInfo"
, fbbUser);
return
SUCCESS;
Constants.LOGIN_FROM_QQ,user_id,
null
,nickname);
}
}
catch
(QQConnectException e) {
e.printStackTrace();
return
LOGIN;
}
}
public
String getErrorMsg() {
return
errorMsg;
}
public
void
setErrorMsg(String errorMsg) {
this
.errorMsg = errorMsg;
}
}