构造自己的微博客同步功能(十一)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 只看该作者
菜鸟只能说先马克,有空再熬夜研究~~