1、介紹
QQ登錄接口。作用是實現(xiàn)QQ直接登錄某些網(wǎng)站,簡化用戶登錄、注冊流程。
現(xiàn)在有很多大型網(wǎng)站都在使用QQ互聯(lián)登錄功能:
X東:

X寧:

X美:

2、簽約
官網(wǎng):http://connect.qq.com
①點擊“應(yīng)用管理”

②如果資料沒有審核通過的話,則可以點擊QQ頭像填寫對應(yīng)的資料和上傳認證的照片,提交審核即可

③當(dāng)個人資料審核通過之后,就申請應(yīng)用接口

④選擇對應(yīng)的應(yīng)用類型

⑤按照要求填寫資料



后續(xù)需要等待七個工作日審核。
⑥等待審核完成
當(dāng)審核完成之后無論是否通過,都會得到接口的key和密鑰。
在審核完成之后點擊應(yīng)用后面的“查看”按鈕

無論是否通過都可以得到key和id,區(qū)別在于
通過審核的接口是任何人都可以實現(xiàn)QQ登錄;
沒有審核通過的,只有申請人自己的QQ可以QQ登錄,其他人的QQ不行;

3、SDK的下載和配置
下載地址:http://wiki.connect.qq.com/sdk%E4%B8%8B%E8%BD%BD

①解壓壓縮包

Api目錄:需要的類和函數(shù)封裝文件的存儲目錄;
Doc目錄:文檔目錄;
Example目錄:接口的demo文件;
Install目錄:安裝文件目錄
Index.php:demo的入口文件;
②需要將其復(fù)制到當(dāng)前的站點中去執(zhí)行

③打開瀏覽器訪問剛才demo的地址

④配置接口


⑤測試接口登錄


點擊頭像

4、QQ互聯(lián)接口的集成
①分析demo文件中彈窗為什么會出來

②仿照①中的操作,將彈窗打開的代碼引用到當(dāng)前電商項目中
修改文件User/login.html

同時需要將對應(yīng)的JavaScript代碼復(fù)制到當(dāng)前頁面,根據(jù)情況做修改:

③編寫QQ登錄回調(diào)地址需要的回調(diào)方法
A,當(dāng)一個用戶用QQ或者其他第三方快捷登錄登錄進系統(tǒng),其身份有2種,一種是新用戶,另外一個是老用戶。
B,如何判斷用戶是新用戶還是老用戶?這個取決于數(shù)據(jù)表中的openid
關(guān)于openid,在騰訊體系中,openid表示用戶的唯一標志,一個QQ用戶的openidid對于一個網(wǎng)站來說永遠不會變。
如果第一次寫callback方法不會寫,可以參考SDK。

將callback.php其中的代碼復(fù)制到callback方法中,根據(jù)實際情況修改路徑:

之后會報錯:

原因是因為命名空間的問題,需要給QC前面添加“\”


Accesstoken是接口在數(shù)據(jù)傳遞過程中進行身份驗證的一個臨時密鑰,一般都是有效期。
獲取用戶詳細信息:
需要使用權(quán)限get_user_info

輸出用戶信息(一維數(shù)組)

判斷當(dāng)前的用戶是新用戶還是老用戶:

測試的效果:
小窗口跳轉(zhuǎn),但是登錄頁面依舊還在。

理想狀態(tài)下:小窗口關(guān)閉,大窗口跳轉(zhuǎn)。
小窗口關(guān)閉:關(guān)閉窗口可以使用window.close();
大窗口跳轉(zhuǎn):可以使用JavaScript里的opener屬性;



補充:如果接口出現(xiàn)-1錯誤,需要按照以下方式進行解決
再次實例化QC類

