騰訊空間、新浪微博、騰訊微博登陸接口的使用。javascript
注意:在網站對接前,請先申請註冊好您的QQ登陸appid、新浪登陸Appkey、騰訊微博appkey。php
一、引用JS文件java
<script src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="appid" type="text/javascript" language="javascript"></script> <!--騰訊QQ--> <script src="http://tjs.sjs.sinajs.cn/open/api/js/wb.js?appkey=Appkey" type="text/javascript" language="javascript"></script> <!--新浪微博--> <script type="text/javascript" src="http://mat1.gtimg.com/app/openjs/openjs.js"></script> <!--騰訊微博-->
其中,上面代碼中的「APPID」替換爲申請接入QQ登陸時得到的appid;「Appkey」替換爲申請接入新浪登陸時得到的Appkey。api
二、HTML代碼app
<span id="tpa_login_qq"></span> <span id="tpa_login_sina"></span> <span id="tpa_login_tqq"></span>
三、JS腳本dom
$(document).ready(function() { tpaLogin.init(); }); //第三方平臺登陸 var tpaLogin = { init: function() { tpaLogin.qzone(); //初始化QQ登陸 tpaLogin.sina(); //初始化新浪登陸 tpaLogin.tqq(); //初始化騰訊微博登陸 }, //保存登陸用戶信息 param: { tpaUserSerialNo: '', //用戶序號 nickname: '', //用戶暱稱 figureurl1: '', //用戶頭像Url(小圖) figureurl2: '', //用戶頭像Url(中圖) figureurl3: '', //用戶頭像Url(大圖) gender: '' //性別(1:男、2:女) }, //參數重置 paramReset: function() { tpaLogin.param.tpaUserSerialNo = ''; tpaLogin.param.nickname = ''; tpaLogin.param.figureurl1 = ''; tpaLogin.param.figureurl2 = ''; tpaLogin.param.figureurl3 = ''; }, //QQ空間 qzone: function() { QC.Login( { btnId: "tpa_login_qq", //按鈕尺寸,可用值[A_XL| A_L| A_M| A_S| B_M| B_S| C_S],可選,默認B_S size: "B_M" }, function(reqData, opts) { tpaLogin.paramReset(); //獲取登陸用戶信息 QC.Login.getMe(function(openId, accessToken) { tpaLogin.param.tpaUserSerialNo = openId; //用戶序號 }); tpaLogin.param.nickname = reqData.nickname; tpaLogin.param.figureurl1 = reqData.figureurl; tpaLogin.param.figureurl2 = reqData.figureurl_1; tpaLogin.param.figureurl3 = reqData.figureurl_2; if (reqData.gender == "男") { tpaLogin.param.gender = 1; } else { tpaLogin.param.gender = 2; } //根據返回數據,更換按鈕顯示狀態方法 var dom = document.getElementById(opts['btnId']), _logoutTemplate = [ //頭像 '<span><img src="{figureurl}" class="{size_key}"/></span>', //暱稱 '<span>{nickname}</span>', //退出 '<span><a href="javascript:QC.Login.signOut();">退出</a></span>' ].join(""); dom && (dom.innerHTML = QC.String.format(_logoutTemplate, { nickname: QC.String.escHTML(reqData.nickname), //作xss過濾 figureurl: reqData.figureurl })); }, function(opts) { //註銷成功 alert('QQ登陸 註銷成功'); } ); }, //新浪 sina: function() { WB2.anyWhere(function(W) { W.widget.connectButton({ id: "tpa_login_sina", //按鈕ID type: "3,5", //按鈕樣式 callback: { login: function(ret) { tpaLogin.paramReset(); //獲取登陸用戶信息 tpaLogin.param.tpaUserSerialNo = ret.id; //用戶序號 tpaLogin.param.nickname = ret.screen_name; tpaLogin.param.figureurl1 = ret.profile_image_url; tpaLogin.param.figureurl2 = ret.avatar_large; tpaLogin.param.figureurl3 = ret.avatar_large; if (ret.gender == "m") { tpaLogin.param.gender = 1; } else { tpaLogin.param.gender = 2; } }, logout: function() { //註銷成功 alert('新浪登陸 註銷成功'); } } }) }) }, //騰訊微博 tqq: function() { T.init({ appkey: appkey }); var _loginBtn = $('<a href="javascript:;">登陸到騰訊微博</a>').appendTo($("#tpa_login_tqq")).click(function() { T.login(function(loginStatus) { // 彈出登陸窗口 // 本次登陸成功 var _name = $('<span style="display:none;"></span>').appendTo($("#tpa_login_tqq")); var _logoutBtn = $('<a href="javascript:;" style="display:none;margin-left:5px;">退出</a>').appendTo($("#tpa_login_tqq")).click(function() { T.logout(function() { //註銷成功 alert('騰訊微博 註銷成功'); _name.hide(); _logoutBtn.hide(); _loginBtn.show(); }) }); _name.show().text(loginStatus.nick); _logoutBtn.show(); _loginBtn.hide(); //獲取微博信息 T.api("/user/info") .success(function(response) { tpaLogin.param.tpaUserSerialNo = response.data.openid; //用戶序號 tpaLogin.param.nickname = response.data.nick; tpaLogin.param.figureurl1 = response.data.head; tpaLogin.param.figureurl2 = response.data.head; tpaLogin.param.figureurl3 = response.data.head; if (response.data.sex == "1") { tpaLogin.param.gender = 1; } else { tpaLogin.param.gender = 2; } }) .error(function(code, message) { alert(message); }); }, function(error) { // 本次登陸成功 //alert("登陸失敗"); }); }); }, //退出 logout: function() { if (QC.Login != null && QC.Login.check()) { QC.Login.signOut(); } else if (WB2 != null && WB2.checkLogin()) { WB2.logout(); } else if (T.loginStatus()) { T.logout(); } } };
附件
xss
一、QQ登陸文檔:http://wiki.connect.qq.com/js_sdk%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8Eide
二、新浪登陸文檔:http://open.weibo.com/wiki/index.php/Weibo-JS_V2#.E5.BE.AE.E5.8D.9A.E8.BF.9E.E6.8E.A5.E6.8C.89.E9.92.AE網站
三、騰訊微博文檔:http://wiki.open.t.qq.com/index.php/Open-jsurl