Ruby on Rails的Twitter應用程式介面是十分簡單的。Twitter是一個簡單的Rails應用程式。查詢資訊的應用程式介面調用是GET請求,而更改,建立或刪除資訊的則是POST請求。命令本身是你的程式讀取的URL。Twitter會在HTTP響應代碼中返回狀態代碼以及你選擇的格式中的資料。
CURL
為了利用Twitter 應用程式介面,會利用到CURL工具。這個工具非常簡單,它可以協助你完成HTTP查詢並從命令列中檢查其結果。它幾乎可以用於所有的平台,因此,應該不存在任何安裝和使用方面的困難。
唯一會轉換到CURL的擔心是以下這些問題:
-u username:password——在作出請求前用來驗證你自己的身份。
-i ——將HTTP標題放入響應中。你可能需要檢查由Twitter返回的HTTP標題,特別是響應代碼。
-w ‘\n%{response_code}\n’——在響應背後給出響應代碼。如果你只是想要響應代碼這一項比起-i轉換要方便。
-d var=data&var2=data——發送POST資料來發布訊息,如果轉換存在,則會有產生一個POST請求,否則則產生一個GET請求。
驗證
大多數Twitter 應用程式介面的命令都要求驗證,這樣Twitter才知道是誰發送了請求。Twitter應用程式介面也不需要Cookies,所以Twitter不會記住發送請求的人。在每次發送請求前,你都必須驗證使用者名稱和密碼。
這是通過使用-u轉換的CURL完成的。如果我的使用者名稱是aboutruby而密碼是pass123,我會添加-u aboutruby: pass123到我的CURL 命令。
你朋友的時間軸
或許在Twitter中最常見的行為是要求你朋友的時間軸。這在你登入Twitter的時候會遇到的。訪問這個就像訪問http://twitter.com/statuses/friends_timeline.xml一樣容易。請注意這一網址後面的.xml。要想以RSS或HTML格式擷取這一網址,你可以使用.rss或.html來替代。
以下的CURL命令列會執行這一命令。你應該看看XML輸出。我們還要在解析XML輸出時對它進行更深入的檢查。
$ curl –u aboutruby:pass123
http://twitter.com/statuses/friends_timeline.xml
發表文章
在Twitter中最常見的行為當然是發表文章或更新。這個CURL命令列有一些細微的差別。-d轉換用於使HTTP行為執行POST請求而不是GET請求,並向發表的文章添加資料。用於這一操作的URL是http://twitter.com/statuses/update.xml ,且它有可能成為POST參數中的一個狀態值。
$ curl -u aboutruby:pass123 -d
'status=Posted from CURL'
http://twitter.com/statuses/update.xml
Twitter剩下的命令按照同樣的模式。作為Twitter命令的完整引用,請看Twitter 應用程式介面維客的REST應用程式介面文檔。值得一提的是Twitter應用程式介面是向所有人免費開放的。
http://twitter.rubyforge.org/