使用新浪微博开放平台api同步微博内容至自己网站( 如何自动将的Twitter信息同步到国内的新浪微博(图))
优采云 发布时间: 2022-02-04 21:14使用新浪微博开放平台api同步微博内容至自己网站(
如何自动将的Twitter信息同步到国内的新浪微博(图))
如何将推特信息自动同步到新浪微博、开心网、人人网等国内SNS网站,我之前介绍过一种同步方法。这种方法虽然可以实现同步功能,但是同步不是实时的。是的,时差约为一小时。这个时差是由 TwitterFeed 引起的。同时,这种方法的设置比较复杂,需要多次翻转。
于是,我开始尝试一种新的同步方式,开发了一个Python程序,定时自动读取和同步推特信息,以简化同步过程,缩短同步时间,实现基本的实时同步功能。原来的同步流程图是:twitter->appspot->twitterfeed->ping.fm->customurl->huotu->新浪微博,新的同步流程变成:twitter->appspot->huotu->新浪微博,步骤大大简化了,只需要在GAE上设置一个定时任务定时执行即可。
由于 GAE 支持 Cron Job 定时任务,所以我们的 Python 程序可以每分钟自动调用一次。调用时,先从推特上抓取用户的最新消息,抓取成功后,将消息同步到地瓜火兔。然后分发到新浪微博、开心网等,如果设置为每分钟执行一次,同步时差只有一分钟左右,基本实现了推特信息实时同步到新浪微博等SNS的功能网站。
我在GAE上调试了这个程序Python程序,不是很流畅。我按照官方说明配置了 cron.yaml 文件,但是更新 Twitter.py 后,Cron Job 定时任务还是不行,后台也看不到相关的 Cron。工作任务。
后来经过一番研究,终于解决了GAE中Python中Cron Job调度任务的问题。原因很简单,因为我的“Google App Engine SDK for Python”是很久以前安装的,当时GAE不支持定时任务,所以无法更新cron.yaml文件,重新下载最新版本后“Google App Engine SDK for Python”安装后,Cron Job 计划任务更新成功。
然而,新的问题又来了。我发现当app调用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文件最后一行,添加你的推特用户名,喃喃火兔用户名和密码分别填写,cron.yaml文件收录定时任务设置,然后就可以按照本文方法发布,执行appcfg.py更新目录名,使用Gmail账号和密码,就可以了发布。
发布后,GAE 可以定期执行 twitter.py 程序。由于可以设置定时执行最少1分钟,同步速度非常快,基本可以达到即时自动同步的效果。
() ()