首先引入授權(quán)js文件
<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="101140406" data-redirecturi="http://127.0.0.1" charset="utf-8"></script>
然后接入QQ登錄
第一種使用系統(tǒng)自帶按鈕登錄,但是這樣會(huì)彈出新窗口,不喜歡 //調(diào)用QC.Login方法,指定btnId參數(shù)將按鈕綁定在容器節(jié)點(diǎn)中 QC.Login({ //btnId:插入按鈕的節(jié)點(diǎn)id,必選 btnId:"qqLoginBtn", //用戶需要確認(rèn)的scope授權(quán)項(xiàng),可選,默認(rèn)all scope:"all", //按鈕尺寸,可用值[A_XL| A_L| A_M| A_S| B_M| B_S| C_S],可選,默認(rèn)B_S size: "B_M" }, function(reqData, opts){//登錄成功 console.log(reqData, opts); //根據(jù)返回?cái)?shù)據(jù),更換按鈕顯示狀態(tài)方法 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();" rel="external nofollow" >退出</a></span>' ].join(""); dom && (dom.innerHTML = QC.String.format(_logoutTemplate, { nickname : QC.String.escHTML(reqData.nickname), //做xss過濾 figureurl : reqData.figureurl })); }, function(opts){//注銷成功 alert('QQ登錄 注銷成功'); }); 第二種,使用自定義按鈕<a>標(biāo)簽鏈接過去,然后成功后調(diào)用這個(gè)地址,a標(biāo)簽的href可以參考第一種window.location QC.api("get_user_info", {}) //指定接口訪問成功的接收函數(shù),s為成功返回Response對(duì)象 .success(function(s){ console.log(s); //成功回調(diào),通過s.data獲取OpenAPI的返回?cái)?shù)據(jù) alert("獲取用戶信息成功!當(dāng)前用戶昵稱為:"+s.data.nickname); }) //指定接口訪問失敗的接收函數(shù),f為失敗返回Response對(duì)象 .error(function(f){ //失敗回調(diào) alert("獲取用戶信息失??!"); }) //指定接口完成請(qǐng)求后的接收函數(shù),c為完成請(qǐng)求返回Response對(duì)象 .complete(function(c){ //完成請(qǐng)求回調(diào) alert("獲取用戶信息完成!"); }); //檢查是否登錄 if(QC.Login.check()){//如果已登錄 QC.Login.getMe(function(openId, accessToken){ alert(["當(dāng)前登錄用戶的", "openId為:"+openId, "accessToken為:"+accessToken].join("/n")); }); //這里可以調(diào)用自己的保存接口 //... }新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注