开发平台
http://connect.qq.com/
http://open.taobao.com/
http://open.weibo.com/
可以下载相应的sdk 和 API
http://connect.qq.com/
http://open.taobao.com/
http://open.weibo.com/
可以下载相应的sdk 和 API
package com.fanbaobao.action;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
import net.sf.json.JSONObject;
import com.bjdata.util.SecurityUtils;
import com.fanbaobao.service.FbbUser;
import com.fanbaobao.service.FbbService.Client;
import com.fanbaobao.util.FbbUtil;
import com.fanbaobao.util.MD5Util;
import com.sun.xml.internal.fastinfoset.stax.events.Util;
import com.taobao.api.internal.util.WebUtils;
public class TaobaoAction extends BaseAction {
private static final Logger logger = Logger.getLogger(TaobaoAction.class);
private String errorMsg;
public static String KEY = "xxx"; //沙箱环境key
public static String SECRET = "xxxx";
public static String REDIRECT="l";
public static String AUTHORIZEURL="";//沙箱环境
public static String TOKENURL=""; //沙箱环境
public static String SAFEKEY="*(.com#$^&";
static{
try
{
Properties propert = new Properties();
java.io.InputStream in = TaobaoAction.class.getClassLoader().getResourceAsStream("login.properties");
propert.load(in);
KEY=propert.getProperty("TAOBAO_KEY",KEY);
SECRET=propert.getProperty("TAOBAO_SECRET",SECRET);
REDIRECT=propert.getProperty("TAOBAO_REDIRECT",REDIRECT);
AUTHORIZEURL=propert.getProperty("TAOBAO_AUTHORIZEURL",AUTHORIZEURL);
TOKENURL=propert.getProperty("TAOBAO_ACCESSTOKENURL",TOKENURL);
}
catch(Exception e)
{
}
}
public void toLogin() throws IOException{
StringBuilder url=new StringBuilder(AUTHORIZEURL);
url.append("?response_type=code")
.append("&client_id=").append(KEY)
.append("&redirect_uri=").append(REDIRECT)
.append("&state=").append(MD5Util.MD5Encode(SECRET+SAFEKEY+KEY, null));
getResponse().sendRedirect(url.toString()); //重定向到新浪授权页面
}
public String doLogin() throws Exception{
HttpServletRequest request=this.getRequest();
String code=request.getParameter("code");
String state=request.getParameter("state");
logger.info("taobao doLogin state:"+state);
if(Util.isEmptyString(code)){
errorMsg="淘宝快捷登录授权失败,请重新授权!";
return LOGIN;
}
Map<String, String> param = new HashMap<String, String>();
param.put("grant_type", "authorization_code");
param.put("code",code);
param.put("client_id",KEY);
param.put("client_secret",SECRET);
param.put("redirect_uri",REDIRECT);
param.put("view", "web");
param.put("state",state);
param.put("scope", "item"); //item,promotion,usergrade
String responseJson=WebUtils.doPost(TOKENURL, param, 3000, 3000);
JSONObject jo=JSONObject.fromObject(responseJson);
if(jo.get("taobao_user_id")==null){
errorMsg="淘宝快捷登录验证失败!";
return LOGIN;
}
String user_id =jo.get("taobao_user_id").toString();
String user_name=jo.get("taobao_user_nick").toString();
HttpSession session=request.getSession();
Client client = FbbUtil.getClient();
FbbUser fbbUser= client.doOauth(3, user_id);
session.setAttribute("fbbUserInfo", fbbUser);
return SUCCESS;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
}
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 weibo4j.Oauth;
import weibo4j.Users;
import weibo4j.Weibo;
import weibo4j.http.AccessToken;
import weibo4j.model.User;
public class SinaAction extends BaseAction {
private String errorMsg;
public String toLogin()throws Exception{
try {
HttpServletRequest request=getRequest();
Oauth oauth=new Oauth();
getResponse().sendRedirect(oauth.authorize("code")); //重定向到新浪授权页面
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 新浪微博登录的回调
* @return
* @throws Exception
*/
public String doLogin() throws Exception{
HttpServletRequest request=getRequest();
HttpSession session=request.getSession();
String accesstoken = null;
String code=request.getParameter("code");
if(code!=null)
{
Oauth oauth=new Oauth();
AccessToken accessToken=oauth.getAccessTokenByCode(code);
accesstoken=accessToken.getAccessToken();
if(accessToken!=null)
{
Weibo weibo=new Weibo();
weibo.setToken(accessToken.getAccessToken());
Users users=new Users();
User weiboUser=users.showUserById(accessToken.getUid());
HttpServletResponse response=getResponse();
System.out.println(weiboUser.getId());
System.out.println(weiboUser.getGender());
System.out.println(weiboUser.getName());
System.out.println(accesstoken);
// if(first<2){
// if(first==1){ //用户第一次登录,发一条微博,且follow 51bi
// Timeline timeline=new Timeline();
// timeline.UpdateStatus("我注册成为了#比购网#会员,免费注册后去淘宝购物,最高有35%的现金返还。最给力的是:到拉手、京东商城、1号店等400多家知名商城不仅能享受最低价格,还能额外省钱40%。喜欢网购的童鞋都去注册一个省钱吧!官方网址:http://www.51bi.com/space/biuser/register.jsp?currentUrl=http://www.51bi.com/taobao/");
// try {
// Friendships fm = new Friendships();
// fm.createFriendshipsById("1718952754");//follow 51bi
// fm.createFriendshipsById("2908640880");//follow 51bi
// } catch (Exception e) {
// }
// }
//未完善资料
Client client = FbbUtil.getClient();
FbbUser fbbUser= client.doOauth(1, weiboUser.getId());
session.setAttribute("fbbUserInfo", fbbUser);
return SUCCESS;
}
}else{
errorMsg="新浪oauth 认证请求非法!";
return LOGIN;
}
return SUCCESS;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
}
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;
// session.setAttribute("oauth_token", oauth_token);
// session.setAttribute("oauth_token_secret", oauth_token_secret);
// InterUser interUser=new InterUser(Constants.LOGIN_FROM_QQ,user_id,null,nickname);
// interUser.setBiUserService(biUserService);
// interUser.setRuledao(ruledao);
// interUser.setAccesstoken(accessToken);
// if (tokenExpireIn!=null) {
// interUser.setExpireIn(String.valueOf(tokenExpireIn));
// }
// session.setAttribute("uid", user_id);
// session.setAttribute("fromsite", Constants.LOGIN_FROM_QQ);
// int first=interUser.doUserLogin(request,response,false); //接口登录
// if(first<2){
// session.setAttribute("loginname",nickname);
// if (first==-1) {
// session.setAttribute("msg","save userBind error");
// }else if (first==-2) {
// session.setAttribute("msg","error");
// }
// return "qzone";
// }
}
} catch (QQConnectException e) {
e.printStackTrace();
return LOGIN;
}
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
}
//login.properties
############
#t.sina login
###########
client_ID =xx
client_SERCRET =xx
redirect_URI =xxx
baseURL=https://api.weibo.com/2/
accessTokenURL=https://api.weibo.com/oauth2/access_token
authorizeURL=https://api.weibo.com/oauth2/authorize
############
#taoBao login
###########
#TAOBAO_KEY=xxxx
#TAOBAO_SECRET=xxxxxx
#TAOBAO_REDIRECT=xxxx
#authorizeURL=https://oauth.taobao.com/authorize
#accessTokenURL=https://oauth.taobao.com/token
//qqconnectconfig.properties
app_ID = x
app_KEY = xx
redirect_URI = xxx
scope = get_user_info,add_topic,add_one_blog,add_album,upload_pic,list_album,add_share,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idollist,add_idol,del_ido,get_tenpay_addr
baseURL = https://graph.qq.com/
getUserInfoURL = https://graph.qq.com/user/get_user_info
accessTokenURL = https://graph.qq.com/oauth2.0/token
authorizeURL = https://graph.qq.com/oauth2.0/authorize
getOpenIDURL = https://graph.qq.com/oauth2.0/me
addTopicURL = https://graph.qq.com/shuoshuo/add_topic
addBlogURL = https://graph.qq.com/blog/add_one_blog
addAlbumURL = https://graph.qq.com/photo/add_album
uploadPicURL = https://graph.qq.com/photo/upload_pic
listAlbumURL = https://graph.qq.com/photo/list_album
addShareURL = https://graph.qq.com/share/add_share
checkPageFansURL = https://graph.qq.com/user/check_page_fans
addTURL = https://graph.qq.com/t/add_t
addPicTURL = https://graph.qq.com/t/add_pic_t
delTURL = https://graph.qq.com/t/del_t
getWeiboUserInfoURL = https://graph.qq.com/user/get_info
getWeiboOtherUserInfoURL = https://graph.qq.com/user/get_other_info
getFansListURL = https://graph.qq.com/relation/get_fanslist
getIdolsListURL = https://graph.qq.com/relation/get_idollist
addIdolURL = https://graph.qq.com/relation/add_idol
delIdolURL = https://graph.qq.com/relation/del_idol
getTenpayAddrURL = https://graph.qq.com/cft_info/get_tenpay_addr
getRepostListURL = https://graph.qq.com/t/get_repost_list
version = 2.0.0.0