使用tweetr架设twitter api proxy

来源:一阁Blog

twitter被墙了

估计很多人知道了http://nest.onedd.net/api这个twitter api proxy,在某些支持twitter api地址更换的软件(例如twitterfoxspaz以及symbian s60上的gravity),使用这个api proxy即可翻墙继续使用,和用穿墙代理以及修改hosts之类的方式比有非常明显的优势。

但是birdnest这个项目需要在Google App Engine上架设,众所周知GFW对GAE一直虎视眈眈,在GAE上架设twitter api proxy各种不靠谱。而我自己有php环境的虚拟主机空间,所以我一直在找一个php架设twitter api proxy的办法。

昨天经过@paveo的提醒,知道了tweetr这个项目。折腾半天后终于搞定了php环境下twitter api proxy的架设。

如何架设的办法在tweetr项目主页的wiki上有说明,英文过关的同学请自行阅读原文,其他同学请看本人的翻译:

环境需求:

>=PHP5

PHP包括curl支持

允许修改.htaccess文件

(译注:绝大多数虚拟主机空间都满足以上要求)

安装指南:

1、下载解压tweetr_php_proxyXXXX.zip,将其中的proxy/文件夹放到web目录下任意位置

2、这条请自行看原文,似乎是说,在flex程序里使用这个twitter api proxy,并且程序和api proxy不在同一域,需要将解压得到的crossdomain.xml放在api proxy所在域的web根目录下。这条基本无关主题,请无视……

3、修改index.php,将其中的$twitterOptions['baseURL']修改为你的proxy文件夹相对web根的路径。例如你将proxy文件夹重命名为twitterapi放在http://yegle.net/twitter/twitterapi下,这里就填写'/twitter/twitterapi'

=========================分割线

安装完实际使用中发现twitterfox和spaz都提示cannot authencation,看了一下代码,原来是部分请求没有发送验证用的用户名密码,猜测是因为这个api proxy本身只是为了跨域"读"twitter上的数据方便,没有考虑到需要"写"twitter数据。更改Tweetr.php,修改function parseRequest其中的一部分,具体位置在94行左右。

在其中加入2行:

strpos($this->url['path'], "statuses/replies.") != false ||

strpos($this->url['path'], "account/verify_credentials.") != false ||

即可

PS.这里的strpos(blablabla)!=false,双重否定太发指了!还有互相之间的或关系……各种逻辑混乱……

PS2.不要直接复制粘贴代码……wordpress会把双引号和单引号转换成其他字符……谁能告诉我有什么简单的在wordpress里粘贴代码的方法?

1 条评论:

Eary 说...

使用Tweetr放置于godaddy主机 一直不能获取,怎么解决呢?