PHP+新浪微博開放平臺+新浪雲平臺(SAE)開發微博應用——進一步學習的走向和有用的資源

賀利堅發表於2012-02-26

PHP+新浪微博開放平臺+新浪雲平臺(SAE)

——新浪微博應用開發的一個解決方案

一、PHP+新浪微博開放平臺+新浪雲平臺(SAE)方案的基礎
二、建立微博應用的過程
三、PHP SDK中Demo程式簡析
四、進一步學習的走向和有用的資源
五、必須交待的幾個問題
【PDF全文下載】



進一步學習的走向和有用的資源

  在進一步的學習中,你需要:

  (1)好好學習PHP:照貓畫虎適合初入手,真正做專案不能靠這三板斧。

  (2)開始比較系統地看線上文件,包括微博開放平臺的文件和SAE的文件。(本文附錄1 中提供新浪微博舊版API中的PHP例程,可以作為初學時閱讀和試探的參考材料)。

  (3)通讀一遍weibooauth.php中的程式碼,優先讀class WeiboClient中公共方法的定義。這些方法都是直接操作微博和使用者的,清楚有哪些方法,其呼叫介面、預設引數等。 (附錄2中 提供了作者整理的class WeiboClient中公共方法的說明)

  你可能還會:

  (1)改用別的語言開發;

  (2)應用中需要用到資料庫:還就在SAE中開發也不錯,MySQL已經在SAE應用中了。其實,SAE中除了程式碼部署、分散式資料庫外,還提供了很多強大的服務支援,包括分散式檔案儲存、分散式快取、程式碼調優、資料庫優化、團隊協作、程式碼版本管理等;

  (3)在專門的開發機上進行開發:線上程式設計有不少問題,常見的做法是開發團隊自行配置伺服器開發(當然1個人開發時,單機即做客戶機又做伺服器也是常見的),程式碼經過測試後再上線。配置各種平臺將不可避免,只要起步了,這些並不是大問題。

  下面談所謂有用的資源。

  <附錄1 新浪微博開放平臺舊版API中的PHP例程>

  附錄1中是新浪微博舊版API中的PHP例程,可以作為初學時閱讀和試探的參考材料。API 文件的舊版介面文件提供了一些PHP示例(新浪對PHP的支援最好),很方便用於學習。但是在新版API文件中,這些例子找不到了。另外,例子是通過介面組織的,這給初學者帶來困難,我們希望通過要實現的功能來組織這些材料。例如,要實現轉發一篇微博,能夠很快地找到,這顯然很誘人。

  附錄1的使用方法:閱讀每一段程式碼,將程式碼寫入前面的weibolist.php檔案中,或者另建一個檔案,在已經建好的應用中執行,除錯、觀察、改寫。以此為基礎,學習過程將加快,成為微博開發的高手。

  需要說明的是,下面的條目分類有與API文件V2不一致的地方,請帶著質疑,對照著API文件使用下面的例子。

  <附錄2 新浪微博開放平臺WeiboClient類的公共方法>

  附錄2提供了作者整理的class WeiboClient中公共方法的說明,這些方法用於直接操作微博和使用者的,需要很熟練地使用,熟知每個方法的名稱、引數和返回值型別。大多函式的返回值為array,還需要通過API文件知道對應array中各欄位的資訊。

  例如,WeiboClient類中有公共方法的定義:

  1. /** 
  2.  * 發表圖片微博 
  3.  * @access public 
  4.  * @param string $text 要更新的微博資訊。 
  5.  * @param string $text 要釋出的圖片路徑,支援url。[只支援png/jpg/gif三種格式,增加格式請修改get_image_mime方法] 
  6.  * @return array 
  7.  */  
  8. function upload( $text , $pic_path )  

  據此,我們知道發圖片微博的程式碼應該包括:

  (1)建立WeiboClient類的物件例項(該例項來自於授權,一段程式中多種功能可以共用一個例項);

  (2)準備微博資訊及圖片url;

  (3)用upload方法傳送;

  (4)利用返回的array完成後續處理。

  例如:

  1. <?php  
  2. $c = new WeiboClient( WB_AKEY ,  
  3.                       WB_SKEY ,  
  4.                      $_SESSION[`last_key`][`oauth_token`] ,  
  5.                      $_SESSION[`last_key`][`oauth_token_secret`]  );  
  6. $t=’新微博’;  
  7. $p=’ http://ww1.sinaimg.cn/large/67c69b94gw1dqf3w3vct0j.jpg’;  
  8. $rr = $c ->upload( $t$p );  
  9. echo “<p>傳送完成</p>” ;  
  10. }  
  11. ?>  


相關文章