新浪微博API開發簡介之使用者授權(PHP基礎篇)_PHP教程

來源:互聯網
上載者:User
現在玩微博的人越來越多了,而關於微博的第三方應用開發也越來越多,自己在偶然間開始接觸了新浪微博API開發,新浪微博API開發的資源比較多,新浪微博提供了一個開發人員的平台,網址是:http://open.weibo.com,它裡面有很全面的新浪微博開發的資料,包括開發人員的使用和介紹,各種語言的API函數介紹文檔,SDK等多種資料。

自己在開發和學習的過程中,感覺雖然沒有太大難度,但還是有一些問題是需要我們注意的,今天就我在開發和學習的過程中,簡單的對利用PHP進行新浪微博API開發的內容進行一個整理和說明,

新浪微博API開發前的準備工作

首先到新浪微博開放平台下載基於PHP的SDK開發包,下載地址是:http://code.google.com/p/libweibo/downloads/detail?name=weibo-oauth-class-with-image-avatar-06-29.zip

下載完成後放到自己的開發環境中並解壓,在其中也包含了demo示範程式,我們可以參考其範例程式進行編寫。

新浪微博API開發最重要的使用者授權過程

其實在開發過程中很多的問題都是集中在使用者授權這個階段,我開發的第三方應用,使用的是OAuth授權,關於OAuth授權的流程在新浪微博開放平台裡有很清晰完整的介紹,我們可以到http://open.weibo.com/wiki/Oauth去查看,我這裡從執行個體開發的角度進行介紹和說明。

1.首先擷取未授權的Request Token


  1. $o = new WeiboOAuth( WB_AKEY , WB_SKEY  );  
  2. $keys = $o->getRequestToken();
  3. //echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);

我們需要在新浪微博開放平台中註冊一個帳號,或直接使用我們的新浪微博帳號登入,進入我的應用程式,然後按照提示建立屬於我們自己的第三方應用,建立完成之後我們可以得到兩個授權的App Key和App Secret值,這兩個值就是我們開發應用的關鍵。

得到授權值後,我們就可以利用上面的代碼獲得未授權的Request Token值了,它們會儲存在$key陣列變數中。

2.然後請求使用者授權Token


  1. $_SESSION['keys'] = $keys;  
  2. aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , 'http://localhost/callback.php');

得到未授權的Request Token值後,我們就利用上面的代碼可以開始準備去新浪微博授權頁面進行授權,$aurl就是授權連結頁面,我們得到$aurl後就可以利用header()直接跳轉到該授權頁面,然後使用者輸入新浪微博帳號和密碼進行授權,授權完成後,自動跳回你在最後一個參數裡面設定的回調頁面:http://localhost/callback.php,該連結你可以設定為上一個頁面,這樣授權完成之後就會自動又跳回去了。

需要注意的是設定session的keys的值是必須的,它在下面擷取到授權的Access Token中是需要用到的。很多的朋友可能會參考其開放平台上面的說明來進行授權時,可發現總是出錯,一般都是這個問題,你並未設定session的keys值,在下面當然取不到Access Token的值了,這個一定要記住了。

3.最後得到使用者授權的Access Token


  1.  $o = new WeiboOAuth( WB_AKEY ,  
  2. WB_SKEY ,
  3. $_SESSION['keys']['oauth_token'] ,
  4. $_SESSION['keys']['oauth_token_secret'] );
  5. $last_key = $o->getAccessToken( $_REQUEST['oauth_verifier'] ) ;
  6. echo($last_key['oauth_token']);

上面的代碼就最終獲得了使用者授權的Access Token,共兩個值,它們儲存在$last_key陣列變數裡面,我們也可以看到,後面的兩個參數就是前面我們設定的session值。到此就基本完成了,這就是新浪微博使用者授權的一個完整的過程。

授權完成後的工作

在授權完成之後,我們就可以開始調用新浪微博提供的各類API函數介面進行實際應用的開發了,在這裡我就擷取最新微博記錄這個介面進行一個簡單說明,其他都類似。

擷取最新新浪微博資訊的API介面函數是:public_timeline(),範例代碼看下面:


  1. //擷取前20條最新更新的公用微博訊息  
  2. $c = new WeiboClient( WB_AKEY ,
  3. WB_SKEY ,
  4. $oauth_token ,
  5. $oauth_token_secret );
  6. $msg = $c->public_timeline();
  7. if ($msg === false || $msg === null){
  8. echo "Error occured";
  9. return false;
  10. }
  11. if (isset($msg['error_code']) && isset($msg['error'])){
  12. echo ('Error_code: '.$msg['error_code'].'; Error: '.$msg['error'] );
  13. return false;
  14. }
  15. print_r($msg);

通常我們在得到使用者授權的Access Token值之後,就把它們儲存在我們的使用者表中,與我們的應用中的帳號進行對應,之後我們在調用新浪微博各api介面時就不用每次都去認證了。

上面的代碼很簡單,執行個體化WeiboClient對象,然後直接調用介面函數public_timeline就可以得到返回的資訊,如果沒有錯誤的話。通常新浪微博api介面返回的資料格式一般為Json格式或xml格式,而我們在此是用php進行開發,則使用Json格式的資料就有先天的優勢,如果返回Json格式資料的話,直接使用php函數json_decode()就可以轉換為php常用的array數組格式了。


http://www.bkjia.com/PHPjc/445720.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/445720.htmlTechArticle現在玩微博的人越來越多了,而關於微博的第三方應用開發也越來越多,自己在偶然間開始接觸了新浪微博API開發,新浪微博API開發的資源...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.