月光博客

青青子衿, 悠悠我心, 但为君故, 沉吟至今

« 淘宝网成人商品全部下架众包——大众力量推动商业未来 »

以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来认证,具体操作方法参见这里



原创文章如转载,请注明:转载自月光博客 [ http://www.williamlong.info/ ]

本文链接地址:http://www.williamlong.info/archives/2049.html
  • 文章排行:
  • 2.Jacse
  • 世界上有Twitter这个网站吗?
    清风无影 于 2010-1-10 22:14:50 回复
    好像是没有哦,我进不去唉!网上尽是一些骗人的信息,什么facebook,youtube啊都没有。
    conandj 于 2010-1-21 14:39:02 回复
    是啊,什么他威特(Twitter),非死不可(facebook),有图不(youtube),犯否,之类的,

    全是传说中的东西。
  • ip: 219.143.204.*  2010-1-10 0:19:43   回复该留言
  • 3.honk
  • 从嘀咕跟来的 前排观看 月光辛苦。
  • ip: 123.145.24.*  2010-1-10 0:19:43   回复该留言
  • 5.puddding
  • 也有@cluries 做的基于php和cron的开源小程序tw2other,正在使用,当前支持嘀咕、新浪、做啥、follow5,带有简单的词语过滤功能。
    williamlong 于 2010-1-10 0:26:50 回复
    php的要单独购买主机空间,我这个python的用免费的就可以。另,那个php的地址是多少?
    puddding 于 2010-1-10 0:31:52 回复
    传送门:http://is.gd/5XQih
    听临 于 2010-1-10 0:32:39 回复
    同求php版。。因为只会php语言。。。最好能加豆瓣广播。。。
    cluries 于 2010-1-10 1:04:12 回复
    呵呵,tw2other是我捣鼓出的,支持嘀咕、新浪、做啥、follow5、9911,不支持人间网 因为不知道为什么我打不开这网站 - -!
    P
  • ip: 125.85.90.*  2010-1-10 0:22:38   回复该留言
  • 6.yuno
  • 上次用博主的方法同步到火兔,火兔却不能同步到围脖。
    williamlong 于 2010-1-10 0:25:21 回复
    火兔同步新浪很不稳定,所以我才进一步做了这个更稳定的程序。
  • ip: 121.35.122.*  2010-1-10 0:22:52   回复该留言
  • 9.rocyhua
  • @duanziwang 已经注册了,大家赶紧。
    我不由得感叹:月光无处不在啊。
  • ip: 219.146.253.*  2010-1-10 1:00:34   回复该留言
  • 10.febird
  • 要是能双向同步就好,可以在任意微薄更新,然后其他微波就同步了,无中心。
    williamlong 于 2010-1-10 11:22:07 回复
    理论上这种同步只能官方集成才行。
  • ip: 58.60.76.*  2010-1-10 9:24:18   回复该留言
  • 11.wuming
  • 中国的这些微博客屏蔽了关键词就成了纯粹的娱乐工具了,大大降低了信息传播功能
    williamlong 于 2010-1-10 11:48:31 回复
    所以要以Twitter为中心做同步。
  • ip: 58.60.76.*  2010-1-10 10:25:43   回复该留言
  • 12.jefflou2002
  • 请问twitter要多久能同步到其他微波呢。我发了一条T,但等了很久也没看到其他网站的同步信息
  • ip: 119.53.40.*  2010-1-10 12:37:38   回复该留言
  • 14.jubuyi
  • 我想请问一下,填ID和密码的时候要不要把双引号去掉啊?另外不需要的服务用#号注释掉,是把该服务的名称注释掉,还是把这整行注释掉啊???不好意思我是菜鸟,什么都不懂。
    williamlong 于 2010-1-11 6:33:44 回复
    不要去掉双引号,就注释这一行即可。
  • ip: 58.61.112.*  2010-1-10 14:52:08   回复该留言
  • 16.常笑鹰
  • 没有留言版,所以到这来了。。
    投票插件有BUG。。。
    大概什么时候能修复啊? 修复后能不能公布源码?
  • ip: 119.8.64.*  2010-1-10 15:28:46   回复该留言
  • 18.淘导
  • 还没用过微博呢,有空得去试试,不过还会支持zblog和wordpress
  • ip: 116.27.193.*  2010-1-10 16:42:28   回复该留言
  • 20.求助
  • 博主你好,非常欣赏你的博客的风格,感觉很简洁,个人比较喜欢,但是自己在网上下载了很多都有问题,能不能把你的风格发到我邮箱一下,谢谢!398200305@qq.com,非常感谢!
  • ip: 125.71.200.*  2010-1-10 17:13:31   回复该留言
  • 25.Leeiio
  • 我一直觉得同步对于营销人士很有用,对我等,一个twitter足以
  • ip: 115.192.190.*  2010-1-10 21:46:32   回复该留言
  • 29.AOA
  • "从去年开始,微博客已经渐渐取代了博客和SNS,成为最流行的互联网应用之一" ---> "从去年开始,微博客继博客和SNS之后,成为最流行的互联网应用之一"
  • ip: 221.217.132.*  2010-1-10 23:08:13   回复该留言
  • 30.AOB
  • "从去年开始,微博客继博客和SNS之后,成为最流行的互联网应用之一" ---> "继博客和SNS之后,微博客从去年开始成为最流行的互联网应用之一"
  • ip: 221.217.132.*  2010-1-10 23:11:45   回复该留言
  • 32.如意旅行网
  • 看过你的写文章,觉得不错,不过不是你的所有文章我都看的懂,看来时学习得不够啊。
  • ip: 60.186.38.*  2010-1-11 0:07:49   回复该留言
  • 34.keel
  • appspot.com之前曾经被墙过,现在好像又不行了,GAE在国内仍然不靠谱。
    williamlong 于 2010-1-11 18:56:04 回复
    即使appspot被墙,这个同步方法依旧可以使用的,因为是从墙外访问墙内的站点。
  • ip: 58.61.112.*  2010-1-11 10:11:47   回复该留言
  • 35.两只老虎
  • 为什么上传成功了,但是不能同步到嘀咕,是否需要修改cron.yaml
    williamlong 于 2010-1-11 19:00:31 回复
    同步嘀咕要填写嘀咕的用户密码,然后去掉前面的注释符号#
    两只老虎 于 2010-1-21 15:08:09 回复
    之前用SDUpload上传的不行,重新安装了python和Google App Engine再上传后成功了,但同步嘀咕、Follow5成功,不知道为什么,做啥同步不成功,仔细检查了,用户名密码正确,前边的#也去掉了。
    两只老虎 于 2010-1-21 15:23:54 回复
    做啥也可以同步了,我什么也没改。真奇怪。
  • ip: 222.83.251.*  2010-1-11 12:04:33   回复该留言
  • 36.anndi
  • 用博主的方法,调试N次后成功,谢谢哦!
  • ip: 121.34.181.*  2010-1-11 12:29:39   回复该留言
  • 37.a
  • 检出这个SVN地址 。未见app.yaml、twitter.py和corn.yaml文件
  • ip: 221.182.3.*  2010-1-11 12:39:25   回复该留言
  • 38.lucian
  • 非常需要这样的功能,来试验下看看效果
    谢谢月光分享
  • ip: 218.94.153.*  2010-1-11 12:47:21   回复该留言
  • 39.therock
  • 成功.不过对菜鸟来说有些复杂了,一开始搞了半天没成功.连GAE都启动不了,提示LINE67错误.
    后来,直接把上边提到的文件放入一个文件夹,然后COPY到gae安装目录下,再执行appcfg.py update 目录名,成功!!!不需要去再看另外一篇月光的GAE发布教程了,越看越乱.
    therock 于 2010-1-11 13:41:06 回复
    需要先在CMD裡切換目錄到GAE的目錄下.
    fdfgd 于 2010-1-11 15:54:31 回复
    "上边提到的文件"是哪个文件?月光写得可真够简单了
    FlyChina 于 2010-1-11 17:50:10 回复
    回复39楼:

    要用python 2.6版本的,3.1的google还不支持。
  • ip: 219.117.219.*  2010-1-11 13:28:38   回复该留言
  • 41.therock
  • /twitter.py
    every minutes every 5 minutes (UTC)
    2010/01/11 05:47:32 on time Failed

    錯誤來了.
    williamlong 于 2010-1-11 18:57:15 回复
    那应该修改 cron.yaml 写成 schedule: every 5 minutes
  • ip: 58.61.112.*  2010-1-11 13:56:28   回复该留言
  • 43.FlyChina
  • 代表同步控表示感谢。

    同时跟上面的某位说下,以前用friend feed,现在用hellotxt可以支持看twitter-like朋友的推的,所以可以用hellotxt作为发布和搜集信息的平台。不过有一个问题是@id 在不同的网站,会@到不同的人。这个问题暂时估计没法解决,只能期待大家在不同的网站都用同一个id了,呵呵。
  • ip: 219.117.219.*  2010-1-11 17:48:53   回复该留言
  • 45.TheRock
  • 各文件明明设置正确,GAE任务也正常.可偏偏设置好的微博却没收到同步信息...
    TheRock 于 2010-1-11 22:33:17 回复
    成功了.!
    或许是月光代码有问题或许是TWITTER有问题或许是GAE主机有问题.
    突然就行了.
    早些时候不行,我就没去理它了,现在看看突然行了.晕....疑问中.
    我这边反复检查,本地调试,没问题.
  • ip: 113.111.49.*  2010-1-11 22:22:56   回复该留言
  • 46.NsYta
  • 要用到GAE。不知道什么时候能出个普通用户能看懂的方法呢
    TheRock 于 2010-1-11 22:35:04 回复
    我就是新菜,看了2,3遍就能懂的.
    TheRock 于 2010-1-11 22:38:56 回复
    本来已经放弃转用"tw2xx..",发现那个程序似乎不太稳定,只能更新一个.
    谁知月光这个突然好了,不过担心GAE被墙...
  • ip: 113.111.49.*  2010-1-11 22:29:32   回复该留言
  • 48.Jan
  • 你好,本人对GAE非常小白。搞了一晚终于算是。。
    可是有个问题,就是修改的APP文件里是不是每个user和
    password都要改?
    本人对那些编程绝对小白。。
    请解答一下。谢谢。。
  • ip: 119.120.61.*  2010-1-12 23:52:09   回复该留言
  • 49.FlyChina
  • 好像@ 的信息是不发送的? 有没有办法改成全都发送的? 还有 download error的问题如何解决?
    williamlong 于 2010-1-13 18:36:46 回复
    你把源代码里的@符号修改为其他符号即可。
  • ip: 121.35.120.*  2010-1-13 18:20:23   回复该留言
  • 50.zer0
  • 非常好用的同步工具,特地前来感谢!
  • ip: 125.37.68.*  2010-1-13 23:56:38   回复该留言
  • 51.火恋神父
  • 经常出现:
    get twitter data error.
    williamlong 于 2010-1-14 19:22:00 回复
    GAE有每小时调用150次Twitter API的限制。
  • ip: 121.35.123.*  2010-1-14 11:30:11   回复该留言
  • 52.lingbaoboy
  • 这个程序只过滤了以@开头的推还是把RT开头的推也过滤了?
    williamlong 于 2010-1-14 19:21:28 回复
    所有包含@的都过滤了,如果不想过滤RT的,修改里面一段代码即可。
    lingbaoboy 于 2010-1-16 10:03:27 回复
    我想很多人都不想过滤RT的,因为RT的都是一些经典Tweet,呵呵,通过月光告诉的修改代码方法,现在已经可以同步RT,但还是可以很好的过滤到以@开头的回复!希望月光可以公布修改代码的方法,很多童鞋都是需要的!
    williamlong 于 2010-2-1 19:17:03 回复
    修改 if text.find('@',1) == -1 : 一行,将@换为其他符号即可。
    leon 于 2010-2-21 21:46:59 回复
    经过我测试,在feed.py文件中有一行if title.find('@',1) == -1 也需要改的
  • ip: 125.46.10.*  2010-1-14 19:15:33   回复该留言
  • 53.jefflou2002
  • 我上传程序成功,却无法转到其他微波,请问是什么原因呢
  • ip: 119.53.38.*  2010-1-15 19:05:19   回复该留言
  • 55.起衣
  • 请问一下月光 怎么修改可以同步RT内容额?
  • ip: 218.94.136.*  2010-1-17 1:25:01   回复该留言
  • 56.野草博客
  • “下载方法,使用TortoiseSVN检出这个SVN地址,”
    不明白这句话什么意思,有人能指点一下吗?
    两只老虎 于 2010-1-28 17:17:54 回复
    这个我也不明白,不过我直接进入到那个地址,把那几个文件下载到同一个文件夹,然后将其上传到GAE,也成功了。
    ibuffalo 于 2010-2-9 3:18:05 回复
    TortoiseSVN是个软件,下载安装后,用Check帮助你下载文件(文件夹)到本地。
  • ip: 61.132.43.*  2010-1-21 12:52:26   回复该留言
  • 57.野草博客
  • 希望能有更详细的图文指导教程,不知道哪位朋友有时间、有警力愿意提供呢?
  • ip: 61.132.43.*  2010-1-21 13:44:31   回复该留言
  • 58.野草博客
  • 野草在用TortoiseSVN检出这个SVN地址时,提示输入用户名和密码,请问应该用哪儿的用户名和密码呢?是Google的用户名和密码吗?
  • ip: 61.132.43.*  2010-1-21 14:02:52   回复该留言
  • 59.yclc
  • 不想过滤RT 修改代码的方法???????可以说明一下吗
  • ip: 123.114.33.*  2010-1-30 11:35:40   回复该留言
  • 61.xingmie
  • 月光能不能说一下修改代码的方法的方法啊,我也同楼上的一样,不过我只想过滤@开关的信息。
    麻烦你了,谢谢
  • ip: 222.246.213.*  2010-2-1 17:45:49   回复该留言
  • 62.XyDemon
  • "修改 if text.find('@',1) == -1 : 一行,将@换为其他符号即可。"这个,我在twitter上问月光本人问到的~同志们试试吧
  • ip: 124.231.112.*  2010-2-1 19:09:35   回复该留言
  • 63.Json
  • 我比较郁闷,都设置好了,也没报错,cron还都是成功的,可测试了那么多条twitter数据,就只同步成功了一条。。要说有问题吧,还有一条是成功的;要说没问题吧,却又只成功了一条而已。。怎么回事?望月光解答
  • ip: 123.161.8.*  2010-2-7 17:44:21   回复该留言
  • 64.cvchina
  • 我成功了,但是后面的链接还是打不开啊?是不是被墙了?可以绕过去么?
  • ip: 222.65.206.*  2010-2-8 23:10:26   回复该留言
  • 66.admin
  • 今天用了月光做的这个同步程序,该配置的都配置了。已经传到appspot上。但是,没成功。网址 http://sync-ping.appspot.com/ 请月光帮忙看一下,谢谢。
  • ip: 60.249.199.*  2010-2-9 23:25:51   回复该留言
  • 69.S
  • 很不错,可是嘀咕做主,推到推特很费时间。。。
  • ip: 113.111.116.*  2010-2-14 10:04:54   回复该留言
  • 70.leon
  • 我的新浪微博绑定了手机,用你推荐的这个发法,每次会在新浪更新两条,一条来自新浪微博,另一条来自手机
  • ip: 110.190.2.*  2010-2-21 20:21:39   回复该留言
  • 71.Vidar
  • 如本文所述修改好以后,使用 SDUPLOAD 发布,一直有如下错误信息,请问何解?谢谢!

    2010-02-26 13:54:22,184 ERROR sdappcfg.pyo:1334 An unexpected error occurred. Ab
    orting.
    Error 403: --- begin server output ---
    You do not have permission to modify this app (app_id=u'twitterfeed').
    --- end server output ---
  • ip: 64.233.172.*  2010-2-26 13:56:20   回复该留言
  • 72.Vidar
  • 如本文所述修改好以后,使用 SDUPLOAD 发布,一直有如下错误信息,请问何解?谢谢!

    2010-02-26 13:54:22,184 ERROR sdappcfg.pyo:1334 An unexpected error occurred. Ab
    orting.
    Error 403: --- begin server output ---
    You do not have permission to modify this app (app_id=u'twitterfeed').
    --- end server output ---
  • ip: 64.233.172.*  2010-2-26 13:56:26   回复该留言
  • 73.Vidar
  • 如本文所述修改好以后,使用 SDUPLOAD 发布,一直有如下错误信息,请问何解?谢谢!

    2010-02-26 13:54:22,184 ERROR sdappcfg.pyo:1334 An unexpected error occurred. Ab
    orting.
    Error 403: --- begin server output ---
    You do not have permission to modify this app (app_id=u'twitterfeed').
    --- end server output ---
    MARILL 于 2010-3-4 20:21:35 回复
    我也一直是这个问题,月光能不能解答下呢
    MARILL 于 2010-3-4 21:32:00 回复
    刚刚发现好象是因为hosts设置了google相关的ipv6的问题。
    暂时删掉就可以正常上传了~
    静夜燃香 于 2010-3-10 23:27:24 回复
    hosts里面没有ipv6相关的问题啊
  • ip: 64.233.172.*  2010-2-26 13:56:31   回复该留言
  • 74.裸奔的鱼
  • 想只同步RT而不同步@的解决方法:把".find('@',1) == -1"改为".startswith('@',1) == False" (不含引号)。

    目前同步到嘀咕,新浪,网易都成功。貌似第一次同步需要经过一段时间才行,是不是正在取cookies呢?
  • ip: 123.116.246.*  2010-3-2 19:43:30   回复该留言
  • 75.伊凡
  • 同步到新浪之前一直正常,今早10点中左右开始重复推,一直没动代码啊……只好先把程序停掉了
  • ip: 61.161.136.*  2010-3-5 11:08:28   回复该留言
  • 76.闲作草
  • 请问能加上豆瓣我说和人人网么?这两个我用得比较多。
  • ip: 61.155.62.*  2010-3-5 15:33:59   回复该留言
  • 78.Alex
  • 请教下出现这个问题怎么办?
    DownloadError
  • ip: 218.108.85.*  2010-3-10 13:34:34   回复该留言
  • 79.Alex
  • 好像网上也有这样的问题:
    .DownloadError'>: ApplicationError: 5
  • ip: 218.108.85.*  2010-3-11 13:30:27   回复该留言
  • 81.围玉
  • 你好
    从2010.03.09 20:22 开始到2010.03.11 15:20结束, 这个程序就疯狂地在网易和新浪两个微薄里同步我的一条微薄, 网易的有300来条,新浪的有260条左右! 我还使用了:digu,9911,zuosa,renjian.未出现问题!
    围玉 于 2010-3-12 15:12:27 回复
    补充,比如说我在twitter里的微薄使用了< >这样的符号, 同步到其它地方就会变成 &#amp; &#lt;之类的了!
    williamlong 于 2010-3-12 21:37:36 回复
    GAE同步重复请参见 http://www.williamlong.info/archives/2106.html 一文。
    围玉 于 2010-3-13 22:45:52 回复
    感谢回复! 呵呵... 我是订阅了你的BLOG的, 你一更新.我就看到了! 今天又查看了下! 反正也就是那一条! 不管他了! 嘿嘿 感谢你的程序
  • ip: 113.205.94.*  2010-3-12 15:07:45   回复该留言
  • 82.KyleLedger
  • 很郁闷啊,下午在GAE配置成功了,然后也成功同步了一条推,后来莫名其妙就无法同步了,我改成同步到9911,然后在9911里设置同步到新浪,9911同步到了,但是从9911又同步不出去了,新浪还是收不到。
    KyleLedger 于 2010-3-13 21:04:02 回复
    补充:直接从9911或者做啥等发消息是能同步到新浪微博的,奇怪为什么从twitter同步到9911或者做啥的消息又无法同步出去。
  • ip: 222.59.158.*  2010-3-13 21:01:13   回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 跟随我的推特:跟随我的推特
  • 跟随新浪微博:跟随新浪微博
  • 通过Google订阅本站
  • 通过鲜果订阅本站
  • 通过电子邮件订阅本站

站内搜索

热文排行

最新评论及回复

最近发表

网站收藏

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本站内容必须也遵循“署名-非商业用途-保持一致”的创作共用协议.

This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.