月光博客 » 网站建设 » 实时同步Twitter信息到新浪微博

实时同步Twitter信息到新浪微博

  如何自动将的Twitter信息同步到国内的新浪微博、开心网、人人网等国内SNS网站,我先前曾经介绍过一个同步方法,该方法虽能实现同步功能,但是同步不是实时的,有大约一小时左右的时差,这个时差是由TwitterFeed引起的,同时该方法的设置较为繁琐,需要多次翻墙。

  因此,我开始尝试一种新的同步方法,开发了一个定时自动读取并同步Twitter信息的Python程序,以简化同步的流程,并缩短同步时间,做到基本实时同步功能。原先的同步的流程图是: Twitter -> appspot -> twitterfeed -> ping.fm -> customurl -> huotu -> 新浪微博,新的同步流程变成了: twitter -> appspot -> huotu -> 新浪微博,步骤大为简化,只需在GAE上设置一个定时执行的计划任务即可。

  由于GAE支持Cron Job计划任务,因此,我们的Python程序可以实现每分钟自动调用一次,调用的时候,先从Twitter上抓取用户最新的消息,抓取成功后,将消息同步到嘀咕火兔,然后分发到新浪微博、开心网等,如果设置为每分钟执行的话,同步时差只有一分钟左右的时间,基本实现了实时同步Twitter信息到新浪微博等SNS网站的功能。

  该程序Python程序我在GAE上调试并不太顺利,按照官方的说明配置好了cron.yaml文件,但是更新Twitter.py之后,Cron Job计划任务还是不起作用,后台也看不到相关的Cron Job任务。

  后来经过一番研究,终于解决了GAE中Python的Cron Job计划任务问题,原因很简单,因为我的“Google App Engine SDK for Python”是很久以前安装的,那时候GAE还不支持计划任务,因此无法更新cron.yaml文件,重新下载了一个最新版本的“Google App Engine SDK for Python”安装后,Cron Job计划任务更新就成功了。

  不过,新的问题又来了,我发现该应用调用Twitter API的时候,失败率非常高,几乎有一半的情况,调用的时候会提示“Rate limit exceeded. Clients may not make more than 150 requests per hour.”,这让我怀疑GAE的外部IP是不是非常少,还有很多第三方程序在GAE上调用Twitter API,才导致每小时的调用超过150次,否则的话,光我自己的调用绝对不会有这么高的频率,大概是因为Twitter没有将GAE的IP设置为白名单,如果有一天Twitter不限制GAE的IP,那应该就没什么问题了。

  安装使用说明:

  下载方法,使用TortoiseSVN检出这个SVN地址,然后,编辑app.yaml,修改为自己的appspot应用名,接着,修改twitter.py文件的最后一行,将自己的Twitter用户名,嘀咕火兔用户名和密码分别填入,cron.yaml文件里是计划任务设置,然后就可以按照此文的方法进行发布,执行 appcfg.py update 目录名,使用Gmail帐号和密码,就可以发布了。

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

实时同步Twitter信息到新浪微博

顶一下 ▲()   踩一下 ▼()

相关文章

  1. 1
      说道:
    新浪的用了几次就没什么兴趣了,我觉得微薄也不会有多大的前途。
    支持(15反对(7回复
  1. 2
    Jacse   说道:
    这和邪世界真折腾啊。
    Twitter浮云啊。
    支持(13反对(6回复
  1. 3
    Hjvg   说道:
    此文一出,一小时150耗的更快
    williamlong 于 2009-11-7 20:11:57 回复
    未必非得安装到GAE上,如果安装在自己支持Python的空间,例如Dreamhost的,就不会出现150次的问题了。
    hafid 于 2009-11-7 20:47:17 回复
    我用dabr安装在dreamhost的空间,也会有150的限制。
    同步到 于 2009-11-8 16:34:13 回复
    同步到底为了什么呢?宣传网站?宣传思想?
    leejeans 于 2009-12-12 11:20:35 回复
    今天发现无法sync了,看gae日志,错误如下,求大大指点,怎么解决?
    12-11 05:20PM 32.387 /twitter.py 500 4197ms 144cpu_ms 47api_cpu_ms 1kb

    details因为包含某些系统关键词,这里无法提交,这是错误标题
    leejeans 于 2009-12-12 11:20:53 回复
    今天发现无法sync了,看gae日志,错误如下,求大大指点,怎么解决?
    12-11 05:20PM 32.387 /twitter.py 500 4197ms 144cpu_ms 47api_cpu_ms 1kb

    details因为包含某些系统关键词,这里无法提交,这是错误标题
    支持(11反对(8回复
  1. 4
    wotch   说道:
    有一点技术含量,俺得慢慢看
    支持(10反对(7回复
  1. 5
    张楠   说道:
    可惜微薄最大的问题在于,质量低
    支持(12反对(9回复
  1. 6
    园子   说道:
    twitter 命比较苦啊
    常常挂~
    支持(11反对(8回复
  1. 7
    视野博客   说道:
    好麻烦哦,现在天天也是在翻着上
    支持(11反对(8回复
  1. 8
    lucker   说道:
    进来学习学习.. 这年头.. 不容易..
    支持(17反对(15回复
  1. 9
    Shaws   说道:
    顶一下。文章写的有技术含量。
    支持(10反对(8回复
  1. 10
    SUN休闲吧   说道:
    新浪的那个比较山寨啊@!
    支持(10反对(9回复
  1. 11
    炎龙博客   说道:
    新浪的用了几次就没什么兴趣了,我觉得微薄也不会有多大的前途。
    支持(16反对(15回复
  1. 12
    冰泉视觉   说道:
    估计GAE距离河蟹的日子不远了
    支持(11反对(10回复
  1. 13
    vim   说道:
    好麻烦的方案,给一个比较简单的方案:
    以zuosa.com为入口帐号,zuosa.com可以直接同步twitter和新浪微博的(而且可以间接实现手现更新twitter),如果需要从twitter好友处收消息,另外再装个可以翻墙的浏览器插件,或者干脆手机接收好了
    shiqianlu 于 2009-11-8 9:34:09 回复
    1.不赞同Vim用zuosa的方法来更新,月光这篇文章侧重于重心放在twitter的用户(RT,@什么的很重要),仅仅是想同步更新twitter和新浪围脖的话,有很多微博服务都可以.
    2.深柳堂有一篇文章,也是利用appspot,直接更新新浪,略去了中间火兔的部分.
    http://zhasm.com/blog/synchronise-sina-miniblog-with-twitter.html
    3.月光这篇文章对于想同步到嘀咕或其他网站的筒子来说依然很有用.貌似现在只有嘀咕一家支持再次转发从别的网站发来的tweets.(要是嘀哒插件复活就好了.)
    支持(10反对(9回复
  1. 14
    漠岚   说道:
    支持一下月光
    支持(10反对(9回复
  1. 15
    Hobo   说道:
    同步到底为了什么呢?宣传网站?宣传思想?
    支持(14反对(13回复
  1. 16
    番茄红素   说道:
    月光真是高手,越来越有兴趣读月光博客了
    支持(10反对(9回复
  1. 17
    葫芦娃博客   说道:
    来这里看看!!!PR都到5了
    支持(9反对(9回复
  1. 18
    shiqianlu   说道:
    晕.虽然刚刚成功同步到嘀咕了,却发现嘀神不支持正版开心网了.
    现在想同步到开心网真是很难,可以同步到开心网的微博服务(9911,5follow),又不支持从别的网站来的消息再次转发.很郁闷.
    支持(14反对(14回复
  1. 19
    alswl   说道:
    万一何谐了appspot。。。
    一切成为浮云
    williamlong 于 2009-11-8 9:23:07 回复
    即使appspot被和谐,该同步方案依然有效。
    支持(10反对(11回复
  1. 20
    两个博客   说道:
    这算不算fangqiang?
    支持(8反对(9回复
  1. 21
    未寒   说道:
    我花了一小时解决了从QQ签名同步到所有微薄,你这里进入是反过来的
    支持(9反对(11回复
  1. 22
    潜行者   说道:
    感觉没看太明白啊,你那个地址有六个文件,是都需要下载下来还是只需要app.yaml和cron.yaml文件?
    支持(12反对(14回复
  1. 23
    littlebt   说道:
    请问这个方法还能用吗 能的话请问这里“将自己的Twitter用户名,嘀咕火兔用户名和密码分别填入,cron.yaml文件里是计划任务设置”具体怎么改 不好意思 刚开始学……
    支持(9反对(11回复
  1. 24
    小倩   说道:
    Twitter被河蟹了,所以同步twitter也成了需要一些技巧的事情了
    支持(8反对(11回复
  1. 25
    飞晏   说道:
    “河蟹”促进技术进步
    voasia 于 2009-11-8 15:34:32 回复
    名言!
    支持(11反对(15回复
  1. 26
    coloriy   说道:
    占座,收藏,每天关注月光,每天关注互联网
    支持(10反对(14回复
  1. 27
    小农夫   说道:
    长见识了呀,里面有些东西还是不能理解,先收藏一下再说吧,以后可能用得着
    支持(9反对(14回复
  1. 28
    yegle   说道:
    这不叫实时…
    实时的问题我想过,最实时的方法就是在twitter api proxy里整合一个发推到其他网站的功能
    支持(7反对(12回复
  1. 29
    takheng   说道:
    请问在哪里填写火兔的用户名和密码?我找了半天也找不到填写的地方,倒是有个地方可以填写新浪微博的用户名和密码.
    支持(8反对(13回复
  1. 30
    weidele   说道:
    很经典 学习了
    支持(8反对(14回复
  1. 31
    弱者   说道:
    作为一名缺乏运动,无力翻墙的天朝居民,即使按照此文安装完毕,但也不知道如何去更新twitter,然而,怎么看此文中信息源头都是从twitter起始,然后逐个同步开去,我等只能望洋兴叹了
    williamlong 于 2009-11-7 21:59:06 回复
    使用Twitter API Proxy在TwitterFox或twhirl可更新Twitter。
    支持(9反对(16回复
  1. 32
    飞洒过   说道:
    现在还能用吗?
    支持(11反对(20回复

发表留言