天天看點

接入新浪微網誌第三方登入

這篇文章主要講解一下如何在自己的網站中接入微網誌登入,廢話就不多說了,所有的接入前的條件都和上一篇網站接入QQ登入中的一樣,首先還是老規矩,先到微網誌開放平台,官網http://open.weibo.com/;

接入新浪微網誌第三方登入

然後先使用你的微網誌賬号登入,然後選擇網站接入,根據提示建立應用,建立好以後送出稽核,等待稽核通過後記下App Key和App Secret;

接下來到官網文檔裡下載下傳PHP SDK,官網下載下傳位址:https://github.com/xiaosier/libweibo.git;下載下傳下來後解壓,檔案大緻如下:

接入新浪微網誌第三方登入

這裡隻保留 saetv2.ex.class.php 和 weibo_login.png這個圖檔素材,其他都是官方demo,都删掉!

接入新浪微網誌第三方登入

接下來建立一個config.php檔案,代碼如下;

?php
    define('APP_KEY',''); //填寫你的App_Key
    define('APP_SECERT','');//填寫你的App_Secret
    define('REDIRECT_URL',''); //應用回調位址                

再建立一個index.php檔案,這裡用來放置微網誌登入圖示;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>網站接入微網誌登入</title>
</head>
<body>
    <a href="login.php"><img src="weibo_login.png"></a>
</body>
</html>                

還需要建立一個login.php,代碼如下:

<?php
require_once 'config.php'; //引入配置檔案

require_once 'saetv2.ex.class.php';

$o = new SaeTOAuthV2(APP_KEY,APP_SECERT); //執行個體化SDK授權類

$oauth = $o->getAuthorizeURL(REDIRECT_URL); //

header('location:'.$oauth);                
接入新浪微網誌第三方登入

然後在浏覽器中打開index.php檔案将會跳轉到微網誌授權登入頁面;

接下來還需要建立一個callback.php 檔案;代碼如下:

<?php
require_once 'config.php'; //引入配置檔案

require_once 'saetv2.ex.class.php'; //引入官方SDK

$code = $_GET['code']; //擷取code

$keys['code'] = $code;

$keys['redirect_uri'] = REDIRECT_URL;

$o = new SaeTOAuthV2(APP_KEY,APP_SECERT); //執行個體化SDK授權類

$oauth = $o->getAccessToken($type = 'code',$keys);

setcookie('accesstoken',$oauth['access_token '],time()+86400);//将擷取到的accesstoken儲存到cookie中

header('location:index.php'); 登入成功後跳轉到index.php                

接下來修改index.php,擷取使用者資訊

<?php
    require_once 'config.php'; //引入配置檔案

 require_once 'saetv2.ex.class.php'; //引入官方SDK

 $access_token = $_COOKIE['accesstoken'];//從cookie中擷取access_token
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>網站接入微網誌登入</title>
</head>
<body>
<?php if(!isset($access_token)){ ?>
 <a href="login.php"><img src="weibo_login.png"></a>
<?php }else{?>
 <a>您已登入</a>
<?php }

//擷取使用者資訊

$o = new SaeTClientV2(APP_KEY,APP_SECERT,$access_token);

$get_uid = $o->get_uid();

$uid = $get_uid['uid'];//擷取使用者Uid

$usr_info=$o->show_user_by_id($uid); //根據uid擷取使用者的資訊

var_dump($usr_info);//列印出使用者資訊
?>
</body>
</html>                
接入新浪微網誌第三方登入

整個流程差不多就是這個樣子,最後就可以将擷取到的使用者資訊進行處理了!