1. 程式人生 > >微博第三方登入

微博第三方登入

本次把我使用第三方新浪微博登入介面的經驗來跟大家分享一下,希望對大家有所幫助,尤其對沒是使用過新浪微博登入介面的使用者,同樣的,大神就不用看了,哈哈。

使用新浪微博登入介面也需要得到新浪微博的認可,所以也需要 微博開發平臺 實現四步驟就行了,開發者註冊-》建立應用-》完善應用資料-》提交稽核。等提交稽核完成後就可以開發這一塊了。以下是具體步驟。

一.準備工作

登入 新浪微博開發平臺http://open.weibo.com/ ,若果沒有微博賬號的可以註冊一個新浪微博。登入成功後就進行資料填寫和身份認證,這個自己去摸索下,等認證成功後。

可以新增新網站(也就是你要使用微博登入的那個網站)http://open.weibo.com/webmaster/add

,按照指定項填寫完成後,可以在選單欄 我的應用 中看到你剛剛提交的網站,當然不是這麼簡單的就可以了,你可以清楚的看到“未提交稽核”,微博開發平臺規定,未稽核成功的網站只允許使用測試賬號(需要手動新增測試賬號),只有稽核成功的才能上線使用。咱們先看一下我們已經獲取到了app key和app secret,這相當於我們使用微博登入介面的賬號。那接下來開始開發吧。

blob.png

二.開發程式碼

先下載php SDK文件,下載地址https://github.com/xiaosier/libweibo,如果沒有的話,就在http://open.weibo.com/wiki/SDK裡面找php SDK進行下載。

下載完成後只保留saetv2.ex.class.php這個檔案(當然你要有興趣的情況下可以研究下其它檔案,基本上都是演示檔案)。

a. 通過以下php程式碼跳轉到微博登入頁面

require_once("./Login/weibo/saetv2.ex.class.php");
$callback_url = "http://www.abc.com/weibo_callback.php";//回撥地址,必須是提交網站域名下的某一個url
$obj = new SaeTOAuthV2($client_id, $client_secret);//$client_id就是App Key  $client_secret就是App Secret
$weibo_login_url = $obj->getAuthorizeURL($callback_url);
header("Location:".$weibo_login_url);

b.通過以下程式碼獲取openid和access_token以及使用者詳細資訊。然後可以把這三個資料存入到 第三方使用者資料表other_user裡(這根據開發要求隨意)。

require_once("./Login/weibo/saetv2.ex.class.php");
$obj = new SaeTOAuthV2($client_id, $client_secret);//$client_id就是App Key  $client_secret就是App Secret
$code = $_GET['code'];
$callback_url = "http://www.abc.com/weibo_callback.php";//回撥地址,必須是提交網站域名下的某一個url
$keys["code"] = $code;
$keys["redirect_uri"] = $callback_url;
$a = $obj->getAccessToken($keys);//$a是一個數組,裡面有uid(使用者的編號)和access_token.
$info = file_get_contents("https://api.weibo.com/2/users/show.json?access_token={$a['access_token']}&uid={$a['uid']}");

c. 如果你的網站有自己的賬號表user,那麼你可以在other_user表裡加一個欄位userId,通過userId關聯你自己網站裡的使用者表user。當從新浪微博登入頁面登入成功後回跳到weibo_callback.php時,可以在這個檔案裡設定$_SESSION['other_userId'](目的是記住是哪個第三方使用者),也就是other_user的id;設定後跳轉到賬號繫結頁面,然後開始繫結你網站的使用者,繫結完成後,把被繫結的網站使用者user的id存入other_usre表$_SESSION['other_userId']使用者的userId。下回使用者可以直接通過登入qq就可以找到繫結的那個user使用者了,從而成功登入你的網站了。