构造自己的微博客同步功能(十一)GAE之一

本主题由 张书记 于 2009-10-13 10:14 解除置顶 麦圆

Twitter @math2gold 惊诧的火星友邦 咪咪是 /math2ogld

1楼 大 中 小 发表于 2009-9-11 20:07 只看该作者

构造自己的微博客同步功能(十一)GAE之一

目前使用Tor来进入资本主义网站打探敌情十分困难,因为速度变慢了,有时候会出现节点连接突然中断的情况。加之此前众多Twitter用户被以奇怪活動

(strange activity)的理由被冻结帐户(account has been

suspended),所以如果每次获取消息都得使用Tor,那其实也不是十分方便。

在这种情况下,与其主动爬到资本主义阵营盗取他们的机密,倒不如让资本主义系统把机密发给我們。具体办法很简单,就是在资本主义主机上建立消息收发同步中转点,把消息以邮件或者IM的形式传送给自己。这样就跟玩饭否没有什么区别了。

一般来说,主机有多种,有收费的,有免费的,有windows的也有*nix的。鉴于GAE是Google公司提供的主机服务,无论是信誉還是服务上都非常好。所以也在它上面建立了这样的Twitter收发同步机器人。于是现在就跟大家分享。

其实不用自己开发程序也有诸如ping.fm的现成的站点。但是自己使用着开源的代码并且在Google上的服务器作收发,除了对密码的保护有安全感外。它還有其他好处:

1. 信息备份到GAE上,可以随时把数据库下載到自己的机器上

2. 没有因倒闭而终止服务的风险。

3. 程序可以自行修改,只要稍微懂得点编程技术的人,都可以自己改进程序

4. Google的网络良好,即便某些地方无法访问GAE的appspot.com,但是亦不妨碍Google GAE上的蜘蛛爬到需要的站点上获取资料

基于这些好处,我就便匆匆搞了这小程序来实现微博客同步转发机器人。

这程序里面的代码有点乱,不過因为代码不长,而且所有的配置参数已经設之在一个py文件和两个yaml文件里面了,因此,只要跟着如下步骤操作,任何人都可以实现自己的Twitter同步服务。

本编介绍的是如何实现收件接收Twitter消息以及Gtalk收费Twitter消息。下编介绍如何通过GAE+Blogger使用邮件发送Twitter。

具体按照如下步骤做即:

A、申请GAE服务

还没申请GAE的话,则需要先申请。 GAE服务直接到这里申请就可以了 http://appengine.google.com/

内有详细中文说明,这部分不作介绍。

B、获取GAE开发包

到这里下載GAE开发包 http://code.google.com/appengine/downloads.html

如果以前曾经下載并已经安装了GAE开发包的,请确认版本必须在1.2.5或者以上的For

Python版本(目前最新的是1.2.5),因为从1.2.5才開始支持Gtalk接收。1.2.5是这个月才開始提供下載的,如果你是很早已经下的,那么必须重新下載更新。

Windows官方提供几个平台的1.2.5版本下載。地址如下:

Linux: http://googleappengine.googlecod … appengine_1.2.5.zip

Windows: http://googleappengine.googlecod … AppEngine_1.2.5.msi

MAC: http://googleappengine.googlecod … eLauncher-1.2.5.dmg

C、下載微博客的程序

从 http://mblogcast.googlecode.com/files/mblogsync_gae.tar.gz 下載GAE的微博同步程序。

如果你对GAE不熟悉,建议解压后,把mblogsync.gae放到GAE的目录下。即在该目录下看到appcfg.py的同时,也应该看到mblogsync.gae这个目录(目录下有app.yaml等文件)

D、修改配置信息

一、修改 default_m2g_conf.py

(1) 修改user_mail,send_mail,user_gtalk

当发现twitter(或其他微博客)有更新时,程序会以user_mail的身份发信给send_mail,同时会发gtalk信息给

user_gtalk用户。为避免滥发垃圾邮件,所以google规定user_mail应该是你申请GAE的用户名(gmail邮箱),建议

send_mail是接收更新信息的用户名。

(2) 修改微博客信息

twitter_username,twitter_password,twitter_timeline_xml,twitter_senduri

twitter_username,twitter_password是Twitter(或者其他微博客)的对应用户名。如果使用的是twitter,则无须修改twitter_timeline_xml,twitter_senduri,否则请修改成对应微博客的

Twitter兼容接口。

二、修改 app.yaml

(1)将 application: your_application_name 里面的 your_application_name

修改为你的GAE程序名(注:一般来说,域名是若xxxxx.appspot.com,则程序名是xxxxx)

(2)为了安全,将fetch_xxxx、send_rss_xxxx和check_sub_xxxx中的xxxx修改为随机且一致的数字字母组合,避免黑客攻击。

例如:使用fetch_aaa123、send_rss_bcd234和check_sub_yyy1984等

(如需了解app.yaml的细节,访问http://code.google.com/appengine … nfig/appconfig.html)

三、修改 cron.yaml

把url: /fetch_xxxx中的/fetch_xxxx修改成跟app.yaml一致的对应名字。

例如app.yaml中使用的是fetch_aaa123,则cron.yaml中亦应对应修改成: url: /fetch_aaa123

E、更新GAE的空间信息(上传程序)

appcfg.py update mblogsync.gae/

F、添加gtalk好友用户

为了能用gtalk接收到twitter更新消息,所以必须添加这个程序机器人为好友。如果你申请的GAE的空间域名是xxxxx.appspot.com,那么你就需要把xxxxx@appspot.com加为gtalk好友。

G、配置邮件过滤器

本程序只要收到Twitter更新,便会发信到指定邮箱,因此信件会跟你接收Twitter一樣密集,所以我建议你建立一个过滤器把所有Twitter邮件加到一个標簽下,避免出现看起来邮箱被轰炸的情况。

另加一提示:如果你担心有一天不能从你所在的地區中访问到gmail,那么你应该建立gmail的过滤器,把本程序机器人发出的送到gmail的所有邮件抄送到另外一个你感觉比較安全的服务商提供的邮箱上。

[ 本帖最后由 麦圆 于 2009-9-11 20:12 编辑 ]


Terminusbot 整理,讨论请前往 2049bbs.xyz


specially

twitter@yxingbin

2楼 大 中 小 发表于 2009-9-12 15:09 只看该作者

哇,高级货,就是有点复杂。辛苦了,试一下。

[ 本帖最后由 specially 于 2009-9-12 15:11 编辑 ]

cwyalpha

3楼 大 中 小 发表于 2009-9-18 07:36 只看该作者

嗯。。谢谢。正在学GAE。刚好拿来试下

OpenBL

4楼 大 中 小 发表于 2009-9-24 00:13 只看该作者

彻底打消我怕丢推的念头

但每天700+的邮件,让我有了想死的念头

libcurl 该用户已被删除

5楼 大 中 小 发表于 2009-10-1 21:01 只看该作者

如何用gtalk更新twitter?就直接聊天里推消息么?

麦圆

Twitter @math2gold 惊诧的火星友邦 咪咪是 /math2ogld

6楼 大 中 小 发表于 2009-10-8 01:38 只看该作者

对啊,直接发消息到gtalk就行了,自动送到推里。

话说我現在有一万多封Twitter的邮件,好在有过滤器,否则真的呕血……不过gmail的搜索功能好,搜推非常方便。

quentinqiao

http://twitter.com/qiaoxiaojun

7楼 大 中 小 发表于 2009-12-9 22:52 只看该作者

收藏!!!!

ping

8楼 大 中 小 发表于 2009-12-10 00:08 只看该作者

这个方案很复杂,仅仅用来搞TWITTER就是牛刀杀鸡。不过其中很多值得学习的东西,用来干其他。。呵呵

btw,我的tor现在网桥加上都没法访问。哈哈

viki

9楼 大 中 小 发表于 2009-12-10 18:46 只看该作者

菜鸟只能说先马克,有空再熬夜研究~~