twiproxy - 基於GTAP 0.4的twitter API proxy

twitter終於封殺了basic auth,爲了避免被拒之牆外,在Google Appengine上裝了一個GTAP 0.4的版本,貌似Twitterrific可以用了,但Twitter的官方客戶端還不能使用。

說起Twitter官方,那可是很糾結的一段。

最初還是tweetie的時候,特意買了一套,誰知不久twitter被封殺,tweetie不支持代理,等啊等,聽說tweetie 2支持代理了,才發現之所以叫2原來是不能升級令要付錢的,嘿嘿,有點上當的感覺啊

後來,tweetie被twitter收購,變成官方,免費的客戶端,高興啊,趕快去下載,發現下的不能用,原來又升tweetie 3了,而tweetie 3只支持xAuth,比如GTAP這樣的,只支持oAuth的也不能用。

沒辦法,偷懶不了,自己動手吧

說起xAuth,其實是oAuth的簡單模式,和Basic Auth最大的不同是,不再傳遞用戶名和密碼,而是傳遞access_token和自簽名數據,GTAP之所以不支持,是因爲沒有對oauth/access_token這條指令做支持。

所以,在GTAP上做了幾處修改:

  • 添加oauth/access_token這條指令的處理,將客戶端發送過來的用戶名/密碼轉換成access_token和access_token_secret
  • 當客戶端發送請求時,通過客戶端發送的access_token獲取access_token_secret。GTAP使用用戶的密碼對保存的access_token和access_token_secret進行加密,導致無法直接通過access_token獲取access_token_secret,這本是安全機制,不過考慮到部署者完全可以通過log方式輸出用戶名密碼或者token,所以改爲明文存儲。可能還有更好的辦法,這裏先偷個懶吧,反正一般都是自己部署的APP
  • 增加了basic命令,按說起來,通過代理是完全可以支持原有的Basic Auth的客戶端的,比如Chrome著名的插件Metrist,通過basic可以實現這個,但目前的測試結果比較奇怪,數據已經正常返回了,但Metrist只有偶爾可以獲取到,不知道爲什麼

爲了開發方便,在Google Code上重新構建了一個項目twiproxy,採用和GTAP一樣的開源協議,有興趣的可以去看看,也歡迎提供修改建議:)

最後列一下twiproxy的功能

  • 支持原有GTAP 0.4的功能
  • 支持xAuth模式,即支持twitter for iPhone登錄
  • 支持原有basic auth客戶端(未確認)

地址:

  • twitter.com : xxx.appspot.com/
  • api.twitter.com : xxx.appspot.com/api
  • basic auth : xxx.appspot.com/basic
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章