自建API,2010漫游twitter(星游版)

作者:watchzerg  来源:http://watchzerg.wordpress.com/2010/03/29/%E8%87%AA%E5%BB%BAapi2010%E6%BC%AB%E6%B8%B8twitter%EF%BC%88%E6%98%9F%E6%B8%B8%E7%89%88%EF%BC%89/

为什么要上twitter?
twitter在短短的一年多,使用人数暴涨10倍以上,试看将来的世界,必是twitter的世界!(呃……其实那些开源的类twitter服务 也许更好,但是实在是被twitter占了先机)。twitter的140字限制看似缺陷,实则为极大的优势。全球移动通信网络的扩张使得这种极度适合手 机阅读的传播方式继续爆发,自从在各种BreakingNews里面twitter轻松的干掉了CNN等传媒巨头,twitter就一发不可收拾。有分析 家认为未来几年twitter用户将超10亿!–如果不想闭门造车,如果想呼吸自由的新鲜空气,上twitter是最佳选择。
大家为什么不上twitter?为什么不学翻墙?到底是因为太难还是自己懒?虽然我这么说会让一部分朋友不舒服,但是,至少我感觉twitter上中文圈子的网友整体素质是要高于google buzz或者人人网的,可能与”翻墙”这道坎,这个”过滤器”有关。
随着墙越来越高,生活在墙里墙外的人所能够获得的信息面的差距也越来越大,墙内的朋友们,我知道你们心中向往着自由,但是为什么就不能每月花十块钱买个SSH或者VPN翻墙上网呢?
—————————————————–
好吧,华丽的跑题了。
作为一个翻墙数年的”老”网民,感觉翻墙虽好,但是也不能把VPN设成开机启动,毕竟有时候上国内的网站不方便。所以我们只好不停的切换翻墙与不翻 墙,虽然后来有了Firefox的autoproxy插件和chrome下的proxy switchy插件,都可以快速的切换代理,甚至还有PAC列表可以只能选择是否对某个网站使用代理–但是我理解大家,需要翻墙的网站,不管怎么说还是有 点麻烦–这也是我的facebook几乎不更新的原因。(多亏我把twitter与facebook的状态绑定了,所以我的脸书还算有点生气)
但是,为什么同样需要翻墙的twitter,我却使用的如此频繁(我上网几乎就去两个地方:twittter和google reader)?很简单,因为twitter的开放式的API使得经过合理的软件和设置之后,与不需要翻墙的网站一样方便!
最简单的方式:众多的twitter网页代理网站使得GFW封不过来,比如 http://hootsuite.com/ 目前就可以访问,而且提供了比twitter官网更加强大的功能,是不是很诱人?当然,这类型的网站也有可能被封,而且不少人可能用不惯网页版本,那么我们为什么不搭建一个自己的免费的API呢?
—————————————————–
感谢大家听我扯淡到第三段依然没有关掉网页,接下来我展示一下搭建完软件和API之后使用twitter究竟方便到了什么程度!
假设我现在刚开机,看到了桌面(注意,此时我并没有翻墙,只是连着网线而已,你上国内网站的速度不会收到任何影响):
第一步:双击桌面上的twhirl图标。
11.PNG
第二步:软件开启了,上twitter成功,哈哈,开始疯狂的twitter之旅吧。
13.png
如此简单的上twitter方式是不是让你激动到颤抖了?是不是下决心不管多难也要学会?继续往下看,其实不难。在twitter上任意扯淡的自由现在距离你只有20分钟的路程了!呃……好吧,30分钟。
—————————————————–
关于API的说明:
我们要搭建的是基于python语言,运行在Google app engine的负责中转twitter信息的一个API程序。这个程序已经由网上的牛人写好了,是一个开源项目,叫做:birdnest(虽然鸟巢这个名 字容易让大家产生不好的联想,但是我忍了),也有PHP版本的,运行在自己的虚拟主机上的其它项目,搭建方法完全不同,我会在别的文章里说明的。
其实官方的birdnest的API目前并没有被封杀(地址在这里: http://nest.onedd.net/ ),但是因为无数的人在用,某些时段不太稳定,到不如自己搭一个,同样是免费的,还可以学点知识。
以google app engine的负载能力,我估计一个API供100个(或者更多)人用没有问题。我自己搭的API也是在分享给现实中的十几个朋友们使用,但是依然不建议 大家在网上公开自己的API,流量一大就会引来GFW的分析,最终被封杀。最好的办法还是教会更多的人搭建API,累死那个狗日的墙!(就像韩少说的,每 一个新增的敏感词都在把墙推向坟墓)
好了,开工搭建API:
—————————————————–
一,建立twitter账户(如果你还没有的话):
能翻墙的去官网注册:http://www.twitter.com
不能翻墙的点击我博客(http://www.watchzerg.com) 左边一栏的”create twitter account”按钮。 –我在我的php空间里专门为大家搭建了一个基于twreg的twitter注册代理,有没有人夸一下我这个伟大的行为?(话说twreg这个软件很牛, 但是缺点也有,button图片居然是放在flickr上的,按钮代码没有加居中效果,很丑–好在我这一点点的知识还能改改简单的代码)
—————————————————–
二,建立appengine账户:
不要告诉我你还没有google账户,你不会是用的新浪的邮箱吧?汗……算我没说。
http://mail.google.com 注册一个google邮箱,就是 @gmail 结尾的,这个不用我截图了吧?这个邮箱地址是你google之旅的开始。
然后访问 https://appengine.google.com/ 去开通这项云服务,貌似得输手机号码发短信(我去年弄的,不知道google走了以后是不是不能往中国大陆发了,大家试试)
成功后,点击”create an application”,然后如下图输入信息,我这里输入”twitterapi”作为示例,二级域名的字符串随便填个好记点的,不过好名字都被占了,自己想一个吧。点击save。
twitterapi1.PNG
这个时候你的第一个应用就创建好了,如下图(我的已经创建四个了,你这时只会看到一个):
3.png
需要注意的是,这个时候”Current version”里,显示的是”None Deployed”,表示我们还未部署代码。
—————————————————–
三,下载并安装环境:
我们需要三个文件:
1.python环境安装包。python是目前非常流行的编程语言,像java的jre,jdk一样,也需要安装运行或开发环境,大家去 python 的官方主页(http://www.python.org/)是没有问题的,但是python的下载页面(http://www.python.org/download/)已经光荣的被防火长城屏蔽掉了-哇哈哈哈哈,世界排名前十的一个编程语言的下载页面被屏蔽掉了!这个已经过各地网友们的测试和确认。
如果你跟我一样,不信任也不愿意去国内的各种下载站去下载python安装包,那么我推荐你去下载avtivePython(知名的windows下的python环境),打开 http://www.activestate.com/activepython/downloads/ 这个页面,选择activepython 2.6.x 系列的下载(虽然有3.x.x的版本,但目前不推荐,因为其不向后兼容)。
下完以后安装即可,一路next下去……
2.GoogleAppEngine的开发包。这个包是google官方基于python语言写的,上面安装的那个包就是为这个服务的。这个包负责与google服务器端通信,以及对应用的校验和管理。下载地址在这个网址 http://code.google.com/appengine/downloads.html ,下第一个window平台for python的。下完后安装。
3.一个SVN工具。SVN是类似与CVS的版本控制工具,目的在于协同多人开发。我们下这个工具的目的在于得到birdnest项目的源代码(因 为一般认为开源的项目代码在不断变动中,所以用SVN工具得到源码是最佳方案)。我推荐tortoiseSVN,也是开源滴!下载地址为: http://tortoisesvn.net/downloads 下那个32位版本的即可(这个与你的CPU是多少位无关,只与操作系统位数有关)。同样,安装之。
—————————————————–
四,获取源代码
birdnest是建立在google code上的开源项目,主页在: http://code.google.com/p/birdnest/ 不熟悉的朋友在上面转一圈会发现:作者骗人,源代码在哪里?
其实点击页面上的Source标签后,可以看到作者告诉你可以用很多工具甚至插件开访问这些代码,并且告诉我们checkout地址是 http://birdnest.googlecode.com/svn/trunk/ 。这时候我们的陆龟就发挥作用了。
在你的硬盘某个位置新建一个文件夹,名字就用你刚才申请google app服务的名字,比如按照我上面截图的话就是”twitterapi”。然后右键点击文件夹,选择”SVN checkout” (这个右键菜单选项会在你安装完tortoise后出现)
twitterapi2.PNG
然后在”URL of repository”里面填入http://birdnest.googlecode.com/svn/trunk/ 这个是birdnest项目源码的地址。如下图:
twitterapi3.PNG
然后点”OK”,如果你的网络连接没问题的话,该项目最新的源码就会被下载到这个文件夹内。
哦,差点忘了,我们需要对代码的一个小地方进行小调整,这是google app环境所要求的,它需要知道这些代码要与你的那个应用绑定。
我假设你电脑里安装了UltraEdit,EditPlus一类的文本编辑软件(表跟我说你没有),其实这类就是windows自带的文本文档的增强版,不过上面提到的那两个是收费软件,我推荐使用开源的NotePad++(NotePadPlus) 下载地址:http://sourceforge.net/projects/notepad-plus/files/notepad%2B%2B%20releases%20binary/ ,你用NotePad2也行。用这类文本编辑软件打开源代码文件夹下的”app.yaml”文件(使用open菜单或者把文件拖入该软件窗口都行),把第 一行”application”后面的”nest”改成你的app项目名,延续上面的示例,就是”twitterapi”,如图。
twitterapi4.PNG
注:不要用windows自带的文本文档编辑器,在处理文件头的BOM时会出问题的。
—————————————————–
五,部署项目
到 这一步,网上几乎所有的教程都在使用命令行操作。当时我也是用命令行操作的,这样虽然很cool,但是当我试图换个google账户给同学弄一个应用时却 出了问题。我知道命令行下也肯定有切换账户的解决办法,但是如果对这一切都不熟悉,我还是建议用google给的app engine的GUI来操作,毕竟是大家熟悉的图形界面。
在安装完我上面说的GoogleAppEngine SDK开发包之后,桌面上就会有一个”Google App Engine Launcher”的图标,如果没有就去开始菜单里找出来,然后启动之。
选择”File”-”add existing application”,在弹出的对话框中定位到刚才的源代码文件夹,然后点OK。(端口号不用改,留作8080就行,那是为了本机测试该应用页面而做的)。
然后选中该应用,单击Deploy按钮(很大的一个按钮):
twitterapi5.PNG
之后输入你的gmail账户和密码,程序会自动部署,然后就成功啦!
—————————————————–
六,测试
打开浏览器,输入你的应用名+appspot.com,比如”twitterapi.appspot.com”,如果看到如下界面,说明搭建成功。
twitterapi7.PNG
提示:步骤2-6只需要执行一次,你的API就会永久运行在Google app engine上。所以看似繁琐,但只需要一次即可。
—————————————————–
七,下载twitter客户端及运行环境
由于twitter开放的api,可用的客户端非常多,我向大家推荐的是twhirl,主页是: http://www.twhirl.org/ 。这是一款基于adobe air的软件,所以类似java,不管你用的是windows还是linux还是mac,你只要安装对应的adobe air环境,就可以使用这款软件上twitter。
首先去adobe公司官网下载对应你操作系统的air环境: http://get.adobe.com/air ,安装之。然后去这里 http://www.twhirl.org/ 下载twhirl主程序。不过我需要告诉大家的另一个好消息是:最新版twhirl的下载地址 http://d.seesmic.com/twhirl/twhirl-0.9.4.air 也光荣的被金盾防火墙屏蔽了!能翻墙的朋友各显神通,不能翻墙的朋友我就好人做到底,把0.9.4版本的twhirl客户端程序放到我的空间里供大家下载,地址是 http://www.watchzerg.com/?attachment_id=152 ,我的朋友或者尊重我的人,请不要使用迅雷下载,其他人随意。下好后安装,很简单的。
—————————————————–
八,使用twhirl,通过API登录twitter
打开安装好的twhirl,左下角的登录方式选择”laconi.ca”,登录帐户填入YourTwitterAccount@twitterapi.appspot.com –其中”YourTwitterAccount”是你的twitter登录名,”twitterapi.appspot.com”是步骤2-6所得到的API地址。
点击”connect”按钮,输入twitter的密码,就会出现本文开头的twhirl界面,可以任意畅游twitter了。登录成功后点击twhirl右上角的小扳手,把字体调大点,至于其它的透明度,刷新频率之类的调整选项,自己对着英语词典研究研究也就会了。
好了,成功了,能上twitter的感觉是不是很好?别急,下面还有你需要的东西。
提示:步骤7-8只有在重装操作系统后才需要执行一遍,平时只需要双击twhirl图标即可上twitter。
—————————————————–
九,在手机上通过API上twitter
之前我上班下班各需要两个小时,每天四个小时的路程就是手机上twitter陪伴着我。对于成天坐在PC面前的人无关紧要,但是对于成天路上跑的人,手机上twitter很重要。
相对PC,手机的灵活度要小,要翻墙只能使用VPN,无法使用SSH,tor等方式,而有了API,我们依然可以在twitter上遨游。
  • 如果你是Symbian60,请下载gravity软件并自行研究如何使用API上twitter
  • 如果你是BlackBerry,请自行研究。
  • 如果你是iPhone,请自行研究,软件很丰富。
  • 如果你是Android,你走运了,下面我介绍android上的用法:
首先进入电子市场,查找”twidroid”这个软件,下载并安装。android上关于twitter上的软件虽多,但twidroid是当之无愧的霸主。
IMG_17801.jpg
打 开twidroid软件,登录方式选择”Other”,API地址输入”twitterapi.appspot.com/api”–就是在2-6步骤得到 的地址后面加上”/api”即可,输入自己的twitter账户,密码,选中”使用SSL加密连接”,确认。好了,这样你的手机也可以上twitter 了,你可以按android上的menu键修改一下twidroid里的各种设置,包括所使用的短域名服务,在线图片服务等。
如 果你想节约手机上网流量,可以使用类似”twitterapi.appspot.com/text”这样的网址,API会自动过滤掉头像等图片,当然其实 twidroid里也提供了”不下载图片”的选项。不过我不建议这么做,因为其实twidroid会自动把好友头像缓存到SD卡上,消耗的流量并不高。
提示:这一步我只在cmnet的移动接入点上测试成功,cmwap尚未测试。(你问什么是cmnet和cmwap? JFGI!)
—————————————————–
十,建立你自己的follow圈子
要 知道,twitter里没有好友的关系,只有follow与被follow的关系,follow者可以看到被follow者的发言,反之不然。简单的说, 比如我follow了100个人,这100个人说的话我将都能看到;而另外有200个人follow了我,那么我说的话就能被这200个人看到。
就像大家刚注册人人账户或者刚申请了一个QQ号一样,在交互性的网站混,起步是最难的,虽然官方会提供给你一些建议的人来follow,但是往往一塌糊涂。所以,我还得告诉大家如何建立自己的follow与被follow的圈子。
本 来follow别人这个动作在twitter官方主站上是比较简单和直观的,打开一个人的页面,看看TA说的话是否与你臭味相投,如果是,则点击 follow按钮即可。但是如果你无法翻墙,就只能在发言栏里使用命令形式来完成。比如,你看了本人,想follow博主星游(啊哈哈哈哈,多谢),你就 在发言的那个小框框里输入”follow watchzerg”,点”发送”,你会发现,系统并没有把这个字符串当作你的发言,而是作为命令执行了,事实上,你发言这两个单词之后就已经 follow了星游(watchzerg)了。记住了?”follow”+空格+对方ID。
twitter上有些名人是我极力建议去fo的,大家也可以自己去google上搜一下各种twitter中文圈子。我推荐这个网站(但愿你看到的时候还没有被封) http://twibase.com/ 上面有twitter中文圈子里的各种大牌人物,连岳,艾未未,王丹,吾尔开希,罗永浩,韩寒,佐拉,冉云飞,笑蜀等……
我在这里也推荐大家一些值得follow的人(前面加”@”是一种twitter的表示方式,”@”后面的就是他的ID):
@lianyue
@mranti
@keso
@aiww
@wenyunchao
@isaac
@zuola
@Fenng
@hecaitou
@roseluqiu
@ranyunfei
@rtmeme
@duanzi
@luoyonghao
@jason5ng32
@mozhixu
@chang_ping
@zhangfacai
@songshinan
@amoiist
@williamlong
@NanZhou
@TwoCold
@tengbiao
@yanghengjun
@leungmantao
@kcome
@xiaolai
@wangdan1989
@buchong
@wuerkaixi
@daxa
@feng37
@xiaoshu1
@kunshou
@zhiyongxu
@wuyuesanren

对了,还有一些twitter上的基本操作:比如你想公开跟我说句话(所有follow你的人都可以看到),你可以输入 “@watchzerg 我看了你的博文,也上推了!”(注意”watchzerg”后面有一个空格)。比如你想跟我私聊,可以输入”d watchzerg 悄悄话,能听到我么?”。假如你看到我发了一句话:”自由万岁!”,而你又很赞同,想要跟别人分享这句话,标准的格式是发出”RT @watchzerg 自由万岁!” 前面的”RT”表示”retweet”,是”再叽喳一遍”的意思。retweet是twitter中很重要的传播方式–不过现在的各种twitter客户 端软件都支持”一键retweet”,比如twhirl中就是点击对方头像右下角的”resend”按钮,软件会自动帮你写好retweet的格式。比较 遗憾的是twhirl目前还不支持twitter官方的retweet功能。
看起来是复杂了点,但是不着急,这些都可以慢慢在twitter上学的。如果刚开始没有人follow你,你可以找一些名人,请他们帮你宣传一下,比如 “@zuola 周曙光大哥,久仰大名,我也是热爱自由的,刚上推,没有人fo我,能RT一下我吗?”
总而言之,twitter虽然不是救世主,但是绝对不会令你失望的,各位朋友,我在twitter上等你们。
—————————————————–
星游
@watchzerg
Mar 29th,2010

2 条评论:

Unknown 说...

用了介绍的方法后,完成了前六步。
但用twhirl登陆后,提示
error receiving replies
何解?
但直接调用
http://www.chinagfw.org/2010/04/twitterapi.html
里提供的gae文件夹就可登陆。

Coriolanus 说...

我的问题同楼上,请博主指点,谢谢!