发布新话题与讨论建议及审查说明
欢迎发布有讨论和阅读价值的话题;不欢迎嘲弄宗教、种族、地缘、性取向等话题。
推崇布拉格公民论坛《对话守则》:对话的目的是寻求真理,不是为了斗争;不做人身攻击;保持主题;辩论时要用证据;要分清对话与只准自己讲话的区别;尽量理解对方。
遵循《世界人权宣言》第十九条不对用户已发表言论进行删除处理;用户有权限删除本人已发表言论;编辑会合并重复话题。
发新话题
收藏 订阅 推荐 打印

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

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

构造自己的微博客同步功能(十一)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 编辑 ]
哇,高级货,就是有点复杂。辛苦了,试一下。

[ 本帖最后由 specially 于 2009-9-12 15:11 编辑 ]
嗯。。谢谢。正在学GAE。刚好拿来试下
彻底打消我怕丢推的念头
但每天700+的邮件,让我有了想死的念头
如何用gtalk更新twitter?就直接聊天里推消息么?
对啊,直接发消息到gtalk就行了,自动送到推里。

话说我現在有一万多封Twitter的邮件,好在有过滤器,否则真的呕血……不过gmail的搜索功能好,搜推非常方便。
收藏!!!!
这个方案很复杂,仅仅用来搞TWITTER就是牛刀杀鸡。不过其中很多值得学习的东西,用来干其他。。呵呵
btw,我的tor现在网桥加上都没法访问。哈哈
菜鸟只能说先马克,有空再熬夜研究~~
发新话题

快速回复主题

 

[完成后可按 Ctrl+Enter 发布]  预览话题  恢复数据  清空内容

顾问:莫之许、北风、不锈钢老鼠、温克坚、艾未未、冉云飞、安替、崔卫平、闾丘露薇、章立凡 形象代言:宋石男 法律顾问:浦志强
编辑
:张书记、上肛上腺、抑扬、musicool、王祖贤、alix001、核子力量、四夕亚日、炽鸢侯、木火
技术:库存袈裟、麦圆、散光