黑金侠

侠之大者,为生为活。

分享到:

Posts Tagged ‘GAE’

搭建属于自己的Twitter API Proxy

Twitter火了,火得不可想像。
由于Twitter特殊的信息传递机制,一条信息可以在瞬间传递给几十成百上千甚至上万(也许更多的人)人。
原本是件好事,但是这在某些国度就不太适用了。
一堵无形的墙已经将互联网世界分隔成两个世界,一个是墙内互联网,一个就是墙外互联网。
显然,Twitter就被隔到了墙外。
但是这难不倒我们,我们可以通过Twitter API Proxy,依然可以享用Twitter。
不多说了,开始我们的搭建计划。
一、什么Twitter API Proxy

HTTP请求有两种不同形式,POST 和GET 。
简单地说,就是把客户端发过来的POST和GET请求转发到原始API地址,并将返回的http header和内容返回给客户端,实现了原始twitter API的所有功能。而对客户端来说,除了提供一个可供配置的API地址选项,不需要做任何代码上的更改。
下面举个场景,通常你要查看某上推友的信息最常用方法是在twitter.com上直接查看,其实调用的是下面请求:
GET http://twitter.com/statuses/show/twitterapi.json
如果你通过第三方应用或者第三方编程调用就是另外的一种请求方法了,假设你在http://none.com/api架设了一个Twitter API proxy,那么你可以用以下方式调用相同的API:
GET http://none.com/api/status/show/twitterapi.json 得到的效果是相同的.

总之,用了Twitter API Proxy就相当于拐个弯上Twitter。对于我们用户本身没什么影响,速度也非常快。
二、Twitter API Proxy的类型
现在流行的Twitter API Proxy应该是这三个:
1、Birdbest

birdnest is a Twitter API proxy which filter out the unnecessary information off the Twitter response. This result better utilization of bandwidth for Twitter mobile client, primarily for jibjib.
Currently, birdnest implemented using Google App Engine.

应该是目前最流行的Twitter API Proxy。我们只要通过Google App Engine就可以实现。今天我们要搭建的就是这个。

2、tweetr

Tweetr is a simple to use AS3 Twitter API Library. As of 1.0b, the Library supports all current Twitter API features and fully supports Basic Authentication and OAuth.
Also included is a simple and easy to install PHP Proxy Class (requires PHP5) that allows the Tweetr API to be used for flash content that is supposed to be deployed on the web. Effectively circumventing the twitter crossdomain restrictions.
It also comes with a URL Shortener Class using http://is.gd/ and a URL Unshortener Class using http://untiny.me.

这是PHP环境下的Twitter API Proxy,需要申请PHP空间,个人使用后觉得没第一个好。
3、Twip

twip is a twitter API Proxy in php,like birdnest.

Twip应该说是3个里最好的一个。只要你有国外php主机。简单上传一下就可以了。无需怎么配置。
下次有机会,我也写篇关于Twip架设教程。

三、Google app engine 是什么?
既然我们要用Google app engine来架设Twitter API Proxy,那先了解下这个东东。

Google app engine 是 Google 提供的一个在线应用程序平台,支持 Python和Java。简单的说是在 Google app engine上面直接运行用 Python/Java 写的程序,由 Google app engine 提供网络空间和带宽。

Google app engine是免费的,但是免费账户在流量上有一定的额度,这也可能导致一个proxy用的人太多之后会down掉,所以别四处发布就行。

四、一个地方-Google app engine

1、我们先要注册Google app engine,用你的Google 帐号登陆就行了,什么?你没有Google Account?我有点无语。建立一个application。

2、手机号码前加+86,输入手机号码就收验证码即可。

3、给自己的application设置一个唯一的id,以后就可以用XXX.appspot.com来访问你的GAE。

此外,还需要下载安装Google app engine的开发环境,注意Python的版本需要是2.5系列的,不能使用2.6或更高的版本,否则运行会出错。
Google App Engine SDK 下载地址 http://code.google.com/intl/zh-CN/appengine/downloads.html

Python 2.5.4 下载地址 http://www.javaeye.com/news/4633

都很简单,一路Next安装即可。

五、两个文件-SDUpload.rar和GAE.ZIP
GAE.ZIP:主程序。
SDUpload.rar:用于上传。

1、把下载下来的两个文件解压到某个目录,比如C:\sdupload\gae和C:\SDUpload。

2、用记事本打开C:\sdupload\gae\app.yaml这个文件,
把第一行application: nest的nest改成你自己刚才建立的id,保存退出。
(注意:只要改nest这4个字母即可,其他勿改)

3、开始-运行-CMD 进入DOS状态;
输入以下命令行:
cd  C:\sdupload
再输入以下命令行即可:
SDUpload update gae

4、此时,会提示你输入你的Email和密码。输入你注册Google App Engine对应的邮件就OK了。
注意:输入密码时,电脑是不显示的,但请回车即可。如果出现错误提示,请多试几次。

5、完成以上步骤后访问您的http://XXX.appspot.com/api/即可。
六、使用Twitter API Proxy
辛苦搭建好了,可别不会用啊。使用支持Twitter API Proxy的客户端,如Gravity,twhirl等等。
在Gravity的连接设置里找到代理:输入:XXX.appspot.com/api/就可以了。(不需要http://)。
在twhirl里的使用方法是,打开账号管理Accounts manager,选择laconi.ca账户类型,输入:[你的twitter帐号名]@XXX.appspot.com,密码为Twitter密码,即可使用。

1 pages