現在玩微博的人越來越多了而關於微博的第三方應用開發也越來越多自己在偶然間開始接觸了新浪微博API開發新浪微博API開發的資源比較多新浪微博提供了一個開發者的平台網址是它裡面有很全面的新浪微博開發的資料包括開發者的使用和介紹各種語言的API函數介紹文檔SDK等多種資料
自己在開發和學習的過程中感覺雖然沒有太大難度但還是有一些問題是需要我們注意的今天就我在開發和學習的過程中簡單的對利用PHP進行新浪微博API開發的內容進行一個整理和說明
新浪微博API開發前的准備工作
首先到新浪微博開放平台下載基於PHP的SDK開發包下載地址是
下載完成後放到自己的開發環境中並解壓在其中也包含了demo演示程序我們可以參考其樣例程序進行編寫
新浪微博API開發最重要的用戶授權過程
其實在開發過程中很多的問題都是集中在用戶授權這個階段我開發的第三方應用使用的是OAuth授權關於OAuth授權的流程在新浪微博開放平台裡有很清晰完整的介紹我們可以到去查看我這裡從實例開發的角度進行介紹和說明
首先獲取未授權的Request Token
$o = new WeiboOAuth( WB_AKEY
WB_SKEY );
$keys = $o
>getRequestToken();
//echo($keys[
oauth_token
]
:
$keys[
oauth_token_secret
]);
我們需要在新浪微博開放平台中注冊一個帳號或直接使用我們的新浪微博帳號登錄進入我的應用然後按照提示創建屬於我們自己的第三方應用創建完成之後我們可以得到兩個授權的App Key和App Secret值這兩個值就是我們開發應用的關鍵
得到授權值後我們就可以利用上面的代碼獲得未授權的Request Token值了它們會保存在$key數組變量中
然後請求用戶授權Token
$_SESSION[
keys
] = $keys;
$aurl = $o
>getAuthorizeURL( $keys[
oauth_token
]
false
);
得到未授權的Request Token值後我們就利用上面的代碼可以開始准備去新浪微博授權頁面進行授權$aurl就是授權鏈接頁面我們得到$aurl後就可以利用 header()直接跳轉到該授權頁面然後用戶輸入新浪微博帳號和密碼進行授權授權完成後自動跳回你在最後一個參數裡面設置的回調頁面該鏈接你可以設置為上一個頁面這樣授權完成之後就會自動又跳轉回去了
需要注意的是設置session的keys的值是必須的它在下面獲取到授權的Access Token中是需要用到的很多的朋友可能會參考其開放平台上面的說明來進行授權時可發現總是出錯一般都是這個問題你並未設置session的 keys值在下面當然取不到Access Token的值了這個一定要記住了
最後得到用戶授權的Access Token
$o = new WeiboOAuth( WB_AKEY
WB_SKEY
$_SESSION[keys][oauth_token]
$_SESSION[keys][oauth_token_secret] );
$last_key = $o>getAccessToken( $_REQUEST[oauth_verifier] ) ;
echo($last_key[oauth_token]);
上面的代碼就最終獲得了用戶授權的Access Token共兩個值它們保存在$last_key數組變量裡面我們也可以看到後面的兩個參數就是前面我們設置的session值到此就基本完成了這就是新浪微博用戶授權的一個完整的過程
授權完成後的工作
在授權完成之後我們就可以開始調用新浪微博提供的各類API函數接口進行實際應用的開發了在這裡我就獲取最新微博記錄這個接口進行一個簡單說明其他都類似
獲取最新新浪微博信息的API接口函數是public_timeline()樣例代碼看下面
//獲取前條最新更新的公共微博消息
$c = new WeiboClient( WB_AKEY
WB_SKEY
$oauth_token
$oauth_token_secret );
$msg = $c>public_timeline();
if ($msg === false || $msg === null){
echo "Error occured";
return false;
}
if (isset($msg[error_code]) && isset($msg[error])){
echo (Error_code: $msg[error_code]; Error: $msg[error] );
return false;
}
print_r($msg);
通常我們在得到用戶授權的Access Token值之後就把它們保存在我們的用戶表中與我們的應用中的帳號進行對應之後我們在調用新浪微博各api接口時就不用每次都去認證了
上面的代碼很簡單實例化WeiboClient對象然後直接調用接口函數public_timeline就可以得到返回的信息如果沒有錯誤的話通常新浪微博api接口返回的數據格式一般為Json格式或xml格式而我們在此是用php進行開發則使用Json格式的數據就有先天的優勢如果返回Json格式數據的話直接使用php函數json_decode()就可以轉換為php常用的array數組格式了
From:http://tw.wingwit.com/Article/program/PHP/201311/21077.html