您当前的位置: 首页 > 网络

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

2019-03-03 17:17:25

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

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

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

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

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

不过,新的问题又来了,我发现该应用调用Twitter API的时候,失败率非常高,几乎有一半的情况,

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

调用的时候会提示 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地址,然后,ml,修改为自己的appspot应用名,接着,修改文件的一行,将自己的Twitter用户名,嘀咕火兔用户名和密码分别填入,ml文件里是计划任务设置,然后就可以按照此文的方法进行发布,执行 update 目录名,使用Gmail帐号和密码,就可以发布了。

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

此文一出,一小时150耗的更快williamlong 于 20:11:57 回复未必非得安装到GAE上,如果安装在自己支持Python的空间,例如Dreamhost的,就不会出现150次的问题了。hafid 于 20:47:17 回复我用dabr安装在dreamhost的空间,也会有150的限制。同步到 于 16:34:13 回复同步到底为了什么呢?宣传站?宣传思想?leejeans 于 11:20:35 回复今天发现无法sync了,看gae日志,错误如下,求大大指点,怎么解决?

05:20PM 32.387 / 500 4197ms 144cpu_ms 47api_cpu_ms 1kb

details因为包含某些系统关键词,这里无法提交,这是错误标题leejeans 于 11:20:53 回复今天发现无法sync了,看gae日志,错误如下,求大大指点,怎么解决?

05:20PM 32.387 / 500 4197ms 144cpu_ms 47api_cpu_ms 1kb

details因为包含某些系统关键词,这里无法提交,这是错误标题

2009/11/7 19:58:52 支持(11)反对(8) 回复

好麻烦的方案,给一个比较简单的方案:

以为入口帐号,可以直接同步twitter和新浪微博的(而且可以间接实现手现更新twitter),如果需要从twitter好友处收消息,另外再装个可以翻墙的浏览器插件,或者干脆接收好了shiqianlu 于 9:34:09 回复1.不赞同Vim用zuosa的方法来更新,月光这篇文章侧重于重心放在twitter的用户(RT,@什么的很重要),仅仅是想同步更新twitter和新浪围脖的话,有很多微博服务都可以.

2.深柳堂有一篇文章,也是利用appspot,直接更新新浪,略去了中间火兔的部分.

3.月光这篇文章对于想同步到嘀咕或其他站的筒子来说依然很有用.貌似现在只有嘀咕一家支持再次转发从别的站发来的tweets.(要是嘀哒插件复活就好了.)

2009/11/8 1:05:35 支持(10)反对(9) 回复

作为一名缺乏运动,无力翻墙的天朝居民,即使按照此文安装完毕,但也不知道如何去更新twitter,然而,怎么看此文中信息源头都是从twitter起始,然后逐个同步开去,我等只能望洋兴叹了williamlong 于 21:59:06 回复使用Twitter API Proxy在TwitterFox或twhirl可更新Twitter。

2009/11/7 21:06:15 支持(9)反对(16) 回复

(*)

验证(*)

推荐阅读
图文聚焦