|
自己在開發(fā)和學(xué)習(xí)的過程中,感覺雖然沒有太大難度,但還是有一些問題是需要我們注意的,今天就我在開發(fā)和學(xué)習(xí)的過程中,簡單的對(duì)利用php進(jìn)行新浪微博API開發(fā)的內(nèi)容進(jìn)行一個(gè)整理和說明,
新浪微博API開發(fā)前的準(zhǔn)備工作
首先到新浪微博開放平臺(tái)下載基于php的SDK開發(fā)包,下載地址是:http://code.google.com/p/libweibo/downloads/detail?name=weibo-oauth-class-with-image-avatar-06-29.zip
下載完成后放到自己的開發(fā)環(huán)境中并解壓,在其中也包含了demo演示程序,我們可以參考其樣例程序進(jìn)行編寫。
新浪微博API開發(fā)最重要的用戶授權(quán)過程
其實(shí)在開發(fā)過程中很多的問題都是集中在用戶授權(quán)這個(gè)階段,我開發(fā)的第三方應(yīng)用,使用的是OAuth授權(quán),關(guān)于OAuth授權(quán)的流程在新浪微博開放平臺(tái)里有很清晰完整的介紹,我們可以到http://open.weibo.com/wiki/Oauth去查看,我這里從實(shí)例開發(fā)的角度進(jìn)行介紹和說明。
1.首先獲取未授權(quán)的Request Token
復(fù)制代碼 代碼如下:
$o = new WeiboOAuth( WB_AKEY , WB_SKEY );
$keys = $o->getRequestToken();
//echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);
我們需要在新浪微博開放平臺(tái)中注冊(cè)一個(gè)帳號(hào),或直接使用我們的新浪微博帳號(hào)登錄,進(jìn)入我的應(yīng)用,然后按照提示創(chuàng)建屬于我們自己的第三方應(yīng)用,創(chuàng)建完成之后我們可以得到兩個(gè)授權(quán)的App Key和App Secret值,這兩個(gè)值就是我們開發(fā)應(yīng)用的關(guān)鍵。
得到授權(quán)值后,我們就可以利用上面的代碼獲得未授權(quán)的Request Token值了,它們會(huì)保存在$key數(shù)組變量中。
2.然后請(qǐng)求用戶授權(quán)Token
復(fù)制代碼 代碼如下:
$_SESSION['keys'] = $keys;
aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , 'http://localhost/callback.php');
得到未授權(quán)的Request Token值后,我們就利用上面的代碼可以開始準(zhǔn)備去新浪微博授權(quán)頁面進(jìn)行授權(quán),$aurl就是授權(quán)鏈接頁面,我們得到$aurl后就可以利用header()直接跳轉(zhuǎn)到該授權(quán)頁面,然后用戶輸入新浪微博帳號(hào)和密碼進(jìn)行授權(quán),授權(quán)完成后,自動(dòng)跳回你在最后一個(gè)參數(shù)里面設(shè)置的回調(diào)頁面:http://localhost/callback.php,該鏈接你可以設(shè)置為上一個(gè)頁面,這樣授權(quán)完成之后就會(huì)自動(dòng)又跳轉(zhuǎn)回去了。
需要注意的是設(shè)置session的keys的值是必須的,它在下面獲取到授權(quán)的Access Token中是需要用到的。很多的朋友可能會(huì)參考其開放平臺(tái)上面的說明來進(jìn)行授權(quán)時(shí),可發(fā)現(xiàn)總是出錯(cuò),一般都是這個(gè)問題,你并未設(shè)置session的keys值,在下面當(dāng)然取不到Access Token的值了,這個(gè)一定要記住了。
3.最后得到用戶授權(quán)的Access Token
復(fù)制代碼 代碼如下:
$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']);
上面的代碼就最終獲得了用戶授權(quán)的Access Token,共兩個(gè)值,它們保存在$last_key數(shù)組變量里面,我們也可以看到,后面的兩個(gè)參數(shù)就是前面我們?cè)O(shè)置的session值。到此就基本完成了,這就是新浪微博用戶授權(quán)的一個(gè)完整的過程。
授權(quán)完成后的工作
在授權(quán)完成之后,我們就可以開始調(diào)用新浪微博提供的各類API函數(shù)接口進(jìn)行實(shí)際應(yīng)用的開發(fā)了,在這里我就獲取最新微博記錄這個(gè)接口進(jìn)行一個(gè)簡單說明,其他都類似。
獲取最新新浪微博信息的API接口函數(shù)是:public_timeline(),樣例代碼看下面:
復(fù)制代碼 代碼如下:
//獲取前20條最新更新的公共微博消息
$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);
通常我們?cè)诘玫接脩羰跈?quán)的Access Token值之后,就把它們保存在我們的用戶表中,與我們的應(yīng)用中的帳號(hào)進(jìn)行對(duì)應(yīng),之后我們?cè)谡{(diào)用新浪微博各api接口時(shí)就不用每次都去認(rèn)證了。
上面的代碼很簡單,實(shí)例化WeiboClient對(duì)象,然后直接調(diào)用接口函數(shù)public_timeline就可以得到返回的信息,如果沒有錯(cuò)誤的話。通常新浪微博api接口返回的數(shù)據(jù)格式一般為Json格式或xml格式,而我們?cè)诖耸怯?a href=/itjie/phpjishu/ target=_blank class=infotextkey>php進(jìn)行開發(fā),則使用Json格式的數(shù)據(jù)就有先天的優(yōu)勢(shì),如果返回Json格式數(shù)據(jù)的話,直接使用php函數(shù)json_decode()就可以轉(zhuǎn)換為php常用的array數(shù)組格式了。
來源:紅心草博客
原文地址:http://www.hongxincao.com/archives/579.html
php技術(shù):新浪微博API開發(fā)簡介之用戶授權(quán)(PHP基礎(chǔ)篇),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。