這篇文章主要講解一下如何在自己的網站中接入微網誌登入,廢話就不多說了,所有的接入前的條件都和上一篇網站接入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>
整個流程差不多就是這個樣子,最後就可以将擷取到的使用者資訊進行處理了!