现在的位置: 首页 > 综合 > 正文

twiproxy – 基于GTAP 0.4的twitter API proxy

2012年11月05日 ⁄ 综合 ⁄ 共 1166字 ⁄ 字号 评论关闭

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

抱歉!评论已关闭.