2010年1月10日星期日

以Twitter为中心的微博同步工具

  从去年开始,微博客已经渐渐取代了博客和SNS,成为最流行的互联网应用之一,Twitter、新浪微博、嘀咕、9911等等都非常流行,很多人都在各个微博平台注册了帐号,但这里就出现了一个新问题,就是信息同步。

  每个人都有不同的使用习惯,每个微博圈子的使用人群也不同,很多微博用户在每个平台都有一些人在关注跟随,因此有必要使用同步程序将每个平台的信息进行统一处理,而这个处理中心,我认为应该是Twitter。

  Twitter的优点

  将Twitter做为微博中心的原因是,更新Twitter的方法很多,工具也很多,使用TwitterFeedFeedBurner还可以直接从RSS Feed更新Twitter。而Twitter本身也是世界最大的微博客平台,在可预计的未来不会消失,用户发布的信息通常也不会丢失或被删除,还有很多备份和导出Twitter信息的方法,因此把信息放在Twitter是比较保险、安全和稳定的。

  将Twitter同步到其他微博客的方法是利用GAE,GAE是Google的一个非常好的免费托管平台,稳定性非常不错,功能也很强大,支持Cron Job计划任务,因此,我们只需要在GAE上部署一个定时执行的计划任务,设置每分钟抓取用户Twitter信息一次,抓取成功后,将最新消息直接发布到新浪微博等平台,就可以实现实时同步Twitter信息到各个微博客网站的功能。

  同步程序的优势

  这个同步程序有一些优势,和我先前介绍的利用嘀咕等微博同步相比,这个程序在安全性、稳定性、速度、灵活性都有巨大的优势。

  从安全性讲,那些第三方网站会保存你的微博密码用于同步,这会造成你微博帐号潜在的安全性问题,再说,将你拥有数千个粉丝的帐号密码保存在那些同步网站,你放心吗?而使用GAE的程序同步,密码只有你自己知道。我们应该不会担心GAE会被黑吧。

  从稳定性讲,我使用该同步程序有几个月时间,几乎没有出现丢信息的情况,GAE服务的性能本身也很稳定,很少宕机。

  从速度上讲,此同步程序最短可以在1分钟内同步完全部的信息,很少有网站能提供这样的同步速度。

  从灵活性讲,我们可以自己修改代码,实现一些自定义的特殊功能,比如这个程序,我定义了包含@的信息不同步,我们还可以自己修改程序实现很多其他的功能。

  目前,本同步程序支持将Twitter同步到新浪微博、嘀咕、9911、做啥、人间网、follow5这六个微博客和Ping.fm、Hellotxt这两个同步服务。同步的流程图如下所示。

以Twitter为中心的微博同步工具

  以其他微博为主

  如果用户不打算以Twitter为主,也可以使用这个程序进行同步,先注册一个Twitter帐号,然后找到用户主要微博的RSS Feed地址,使用TwitterFeed或者FeedBurner将这个Feed同步到Twitter,然后使用本程序进行后面的同步。如果未来新浪微博支持RSS Feed,那么使用这个方法可以实现把新浪微博的信息同步到其他各个微博客中。

  应用的安装部署方法

  下载方法,使用TortoiseSVN检出这个SVN地址,然后,编辑app.yaml,修改为自己的appspot应用名,接着,修改twitter.py文件的最后一行,将自己的Twitter用户名填入,修改从 ret = send_sina_msgs("username","password",text) 语句开始的 username 和 password ,将相应微博客的用户名和密码分别填入,不需要同步的服务请使用#号注释掉,cron.yaml文件里是计划任务设置,然后就可以按照此文的方法进行发布,执行 appcfg.py update 目录名,使用Gmail帐号和密码,就可以发布了。

  发布之后,GAE就可以定时执行twitter.py程序,由于定时执行可以设置最短为1分钟,因此同步速度很快,基本可以实现即时自动同步的效果。

  其他注意事项

  follow5要用api_key才能同步,目前程序里放的是我的api_key,建议使用follow5的用户单独申请一个api_key,以防把我这个api_key给用爆了。人间网要邀请码才能注册使用,邀请链接点这里获取。Ping.fm、Hellotxt使用key来认证,具体操作方法参见这里