QQ登錄最簡單的接入方式面世!使用QQ互聯(lián)最新提供的JS SDK,可以完全不用了解復(fù)雜的協(xié)議,不用后臺(tái)交互,直接將對(duì)應(yīng)代碼粘貼到網(wǎng)頁html代碼里即可使用,開發(fā)成本減少到半天!
JS SDK基于QQ互聯(lián)OAuth2.0協(xié)議的client-side模式,封裝了登錄流程與【QQ登錄】API列表中的所有OpenAPI調(diào)用方法。開發(fā)者不需了解協(xié)議,只需要前臺(tái)交互,以及將相關(guān)的參數(shù)修改成自身對(duì)應(yīng)的參數(shù)即可使用。同時(shí),QQ互聯(lián)又提供了可供第三方高級(jí)需求進(jìn)行自行配置的可選參數(shù)與相關(guān)函數(shù),使開發(fā)者可以根據(jù)自身需求靈活使用。
JS SDK同時(shí)支持多瀏覽器,跨平臺(tái),多系統(tǒng),不僅簡單便捷,同時(shí)為高級(jí)開發(fā)者提供了豐富的參數(shù)與自定義函數(shù)模板,使開發(fā)者可以根據(jù)自身情況進(jìn)行適配或進(jìn)行二次開發(fā)。使用JS SDK是網(wǎng)站開發(fā)者接入QQ互聯(lián)最好的選擇,目前除詳細(xì)的使用文檔之外,還提供了豐富詳細(xì)的demo展示,使開發(fā)成本減少到最低。
JS_SDK使用說明
1. 實(shí)現(xiàn)QQ登錄功能開發(fā)者只需要按以下三個(gè)步驟粘貼代碼到網(wǎng)頁,即可實(shí)現(xiàn)QQ登錄功能,過程非常簡單快速,F(xiàn)在就去體驗(yàn)。
1.1 引用JS SDK的JavaScript文件1. 首先需要申請(qǐng)接入QQ登錄,并成功獲取到appid和appkey。
2. 在html頁面適當(dāng)?shù)奈恢靡隞S腳本包(將下面代碼中的“APPID”替換為申請(qǐng)接入QQ登錄時(shí)獲得的appid):
<script type="text/javascript"
src="qzonestyle.gtimg.cn/qzone/openapi/qc.js#appId=APPID"
charset="UTF-8">
</script>
1.2. 放置QQ登錄按鈕在html頁面需要插入QQ登錄按鈕的位置,粘貼如下代碼:
<span id="qqLoginBtn"></span>
<script type="text/javascript">
QC.Login({
btnId:"qqLoginBtn" //插入按鈕的節(jié)點(diǎn)id
});
</script>
上述代碼中放置了一個(gè)html元素節(jié)點(diǎn),并給該節(jié)點(diǎn)指定全頁面唯一的id,例如上面例子中的<span id=”qqLoginBtn”></span>;開發(fā)者也可將其改成自定義的按鈕名稱。
上述步驟正確執(zhí)行后,頁面粘貼上述代碼處會(huì)出現(xiàn)如下按鈕:
點(diǎn)擊該按鈕,即可發(fā)起登錄請(qǐng)求。
若需要對(duì)登錄按鈕進(jìn)行設(shè)置,請(qǐng)自定義登錄按鈕。將修改后的代碼粘貼到頁面中放置登錄按鈕處。
JS SDK封裝了獲取Access Token以及OpenID的方法,因此開發(fā)者不需要再開發(fā)代碼進(jìn)行獲取,直接調(diào)用QQ登錄OpenAPI即可。
1.3. 調(diào)用QQ登錄OpenAPI(1)調(diào)用方式說明
QQ互聯(lián)在JS SDK中封裝了所有的OpenAPI接口,開發(fā)者只需要傳遞OpenAPI名稱,以及OpenAPI需要的相關(guān)參數(shù),就可以調(diào)用OpenAPI。
調(diào)用OpenAPI時(shí),請(qǐng)統(tǒng)一遵循下述調(diào)用方式:
QC.api(api, paras, fmt, method):Request
函數(shù)說明:
用JS SDK協(xié)助調(diào)用OpenAPI。
參數(shù)說明:
參數(shù)名稱 是否必須 描述
api 必須 指定要調(diào)用的OpenAPI名稱。例如:調(diào)用【QQ登錄】add_share時(shí),OpenAPI名稱為“add_share”。
各OpenAPI的名稱具體請(qǐng)參見【QQ登錄】API列表。
paras 必須 指定要調(diào)用的OpenAPI對(duì)應(yīng)的參數(shù)。各參數(shù)使用JSON的鍵值對(duì)格式列出。
OpenAPI對(duì)應(yīng)的參數(shù)具體請(qǐng)參見【QQ登錄】API列表中各OpenAPI的參數(shù)說明。
fmt 可選 指定OpenAPI的返回格式,可用值為“JSON”或“XML”。默認(rèn)為“JSON”。
method 可選 指定OpenAPI調(diào)用請(qǐng)求的發(fā)起方式,可用值為“GET”或“POST”。根據(jù)配置,默認(rèn)發(fā)送數(shù)據(jù)為“POST”,獲取數(shù)據(jù)為“GET”。
返回值說明:
每個(gè)OpenAPI調(diào)用時(shí)均指定了一個(gè)Request對(duì)象,開發(fā)者可根據(jù)OpenAPI請(qǐng)求完成情況指定不同的處理函數(shù)。
每次QC.api調(diào)用的異步響應(yīng)都會(huì)返回一個(gè)Response對(duì)象,用于接收OpenAPI的返回值,包括返回格式、返回?cái)?shù)據(jù)、OpenAPI請(qǐng)求錯(cuò)誤碼等。
(2)調(diào)用OpenAPI示例
OpenAPI的調(diào)用示例,請(qǐng)參見JS SDK的體驗(yàn)頁面。
2. JS SDK的其他公開方法2.1. 直接打開QQ登錄彈窗QC.Login.showPopup(oOpts):Window
參數(shù)說明:
oOpts:需要指定appId,回調(diào)地址redirect_URI。
返回值說明:
返回瀏覽器彈窗對(duì)象。
2.2. 注銷當(dāng)前登錄用戶QC.Login.signOut():void
2.3. 獲取當(dāng)前登錄用戶的Access Token以及OpenIDQC.Login.getMe():Object
返回值說明:
openId:用戶身份的唯一標(biāo)識(shí)。請(qǐng)保存在本地,以便用戶下次登錄時(shí)可對(duì)應(yīng)到其之前的身份信息,不需要重新授權(quán)。
accessToken:表示當(dāng)前用戶在此網(wǎng)站/應(yīng)用的登錄狀態(tài)與授權(quán)信息,也請(qǐng)保存在本地。
2.4. 檢測當(dāng)前登錄狀態(tài)QC.Login.check():Boolean
返回值說明:
true:說明登錄成功。
false:說明登錄失敗。
3. 自定義登錄按鈕開發(fā)者可以根據(jù)自己的需要,自定義登錄按鈕,示例如下:
<span id="qqLoginBtn"></span>
<script type="text/javascript">
//調(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: "A_XL"
}, function(dt, 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();">退出</a></span>'
].join("");
dom && (dom.innerHTML = QC.String.format(_logoutTemplate, {
nickname : QC.String.escHTML(reqData.nickname),
figureurl : reqData.figureurl
}));
}, function(opts){//注銷成功
alert('QQ登錄 注銷成功');
}
);
</script>
開發(fā)者也可以使用下列函數(shù)作為登錄成功的回調(diào)接收函數(shù):
① 登錄成功的回調(diào)函數(shù):
cbLoginFun(oInfo, oOpts)
參數(shù)說明:
oInfo:當(dāng)前登錄用戶的基本信息,即OpenAPI中g(shù)et_user_info返回的數(shù)據(jù)。
oOpts:回傳初始化參數(shù),多個(gè)按鈕時(shí)可用來區(qū)分來源,用來區(qū)分一個(gè)頁面多個(gè)登錄按鈕的情況。
② 注銷成功的回調(diào)函數(shù):
cbLogoutFun()
4. Request與Response內(nèi)置對(duì)象說明4.1 RequestJS SDK在初始化時(shí)會(huì)根據(jù)瀏覽器環(huán)境創(chuàng)建不同的請(qǐng)求代理,QC.api的每次調(diào)用都是一個(gè)Request對(duì)象。
Request對(duì)象的公開方法如下:
.success(resp): Request:請(qǐng)求完成并且返回碼為0的回調(diào)。
.error(resp): Request:請(qǐng)求完成并且返回碼不為0的回調(diào)。
.complete(resp): Request:請(qǐng)求完成后的回調(diào)。
調(diào)用時(shí)序?yàn)閟uccess/error -> complete,每個(gè)方法都可以調(diào)用多次,每次調(diào)用返回Request本身,支持鏈?zhǔn)秸{(diào)用。
resp參數(shù)為回調(diào)函數(shù),回調(diào)函數(shù)參數(shù)為Response對(duì)象。
4.2. ResponseResponse為Request對(duì)象綁定的回調(diào)函數(shù)的返回參數(shù),每次QC.api調(diào)用的異步響應(yīng)都會(huì)返回一個(gè)Response對(duì)象,該對(duì)象在Request對(duì)象的success/error -> complete調(diào)用流程中傳遞。
Response的公開方法如下:
.stringifyData:返回該Response對(duì)象包含的數(shù)據(jù)體的文本串。
Response的公開屬性如下:
.status:響應(yīng)狀態(tài),-1:代表未知;404:響應(yīng)錯(cuò)誤;200:響應(yīng)成功。
.fmt:響應(yīng)數(shù)據(jù)格式,json/xml。
.code/.ret:響應(yīng)返回碼,0為成功,其他為失敗。
.data:響應(yīng)數(shù)據(jù)實(shí)體,json對(duì)象/xml對(duì)象。
.seq:響應(yīng)序號(hào),從1000開始編號(hào)。
取自“http://wiki.opensns.qq.com/wiki/%E3%80%90QQ%E7%99%BB%E5%BD%95%E3%80%91JS_SDK%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E”
關(guān)于騰牛 | 聯(lián)系方式 | 發(fā)展歷程 | 版權(quán)聲明 | 下載幫助(?) | 廣告聯(lián)系 | 網(wǎng)站地圖 | 友情鏈接
Copyright 2005-2018 QQTN.com 【騰牛網(wǎng)】 版權(quán)所有 鄂ICP備17010784號(hào)-1 | 鄂公網(wǎng)安備 42011102000245號(hào)
聲明: 本站非騰訊QQ官方網(wǎng)站 所有軟件和文章來自互聯(lián)網(wǎng) 如有異議 請(qǐng)與本站聯(lián)系 本站為非贏利性網(wǎng)站 不接受任何贊助和廣告