
gtweet-widget
News
最近作者忙得要死……(其实现在的成果也是硬挤时间赶出来的),简单的更新都做不了 如果你有兴趣加入这个项目,请联系 gavinxiaozu@gmail.com
简介
你可以将编译好的flash放在任意服务器上,贴到你的主页和博客。让你的阅读者也看你的twitter吧~
可以直接访问这个链接看看效果
http://gtweetsgav.appspot.com/main.swf?id=gavinxixi
http://gtweet-widget.googlecode.com/files/Snap2.jpg' /> http://gtweet-widget.googlecode.com/files/Snap3.jpg' /> http://gtweet-widget.googlecode.com/files/Snap4.jpg' />
如果你觉得好用只要将 http://gtweetsgav.appspot.com/main.swf?id=XXXXX 中的XXXXX替换成你的用户名即可(只要是没有受保护的都可以哦)
下一版本将关注
Widget端
- 增加大版,竖版,多推同屏显示
- 显示完整对话链
增加对中文名称,中文标签的支持
GAE端
完善软件发布页面
- 使用oauth机制增加API调用数
缘由
开发这个东东的初衷是想在qq空间上显示自己的推,以前饭否曾经有过这样的功能,让朋友们都看到自己的唠嗑。随后想到的是这样最重要的目的是告诉大家世界上还有样叫推特的东西,但是中国人民都没法直接上,因为有GFW的存在……
虽然已经有这样成熟的widget http://www.widgetbox.com/widget/twidget 但是对中文支持不好(长推显示不全),有广告,没有对twitter的说明,不明真相的群众可能根本不知道这是什么。
本人技术非常渣,什么都粗略懂点但是什么都不精,第一次用flex开发,希望得到大家的指点,谢谢~
原理
概览:留意红字部分的说明
http://gtweet-widget.googlecode.com/files/logic.jpg' />
几个关键点: * 利用twitter API 获取信息,在flex中我使用URLLoader
但是flash的GET机制是不允许使用Header的,也就不能使用twitter的Basic Authorization
所以我借用了GAE来做API代理,Gtweets向GAE不带权限请求,GAE加入我提供的权限信息向twitter请求
利用这种类似代理的机制,实现了浏览者不需要注册twitter就能看到你在twitter上的信息(必需不受保护的用户才能看到)
界面上的元素是解释官方页面主题获取的
twitter信息使用正则表达式解析
使用
在请求Gtweets的时候url后加上参数id=用户名
例如:
http://gtweetsgav.appspot.com/main.swf?id=newsinchina
http://gtweetsgav.appspot.com/main.swf?id=_yupo_ 不经允许调用牧师和于婆的号~(*^__^*)
对于开发者
- Gtweets的请求方式和官方API一致,但是根据功能,只实现了显示用户信息和最近的推的接口
var url:String = Setting.api_url + "users/show.xml?id=" + screen_name; var url:String = Setting.api_url + "statuses/user_timeline.xml?id=" + screen_name;
所以API是可以更换的,但是上述提到,这里是不包含认证机制的,所以可能会产生不可预料的返回结果(成功或者提示403、404、502等错误)
改进
现在问题还是不少的,主要有下面几个: * 依赖于外界服务器,不能做到一个flash搞定的轻便(GAE可以最少限度的解决,对于有自己服务器的没有影响) * 不能处理过多请求,以为权限认证在服务器端,暂时只是用一个账号实现,所有有150/h的API限制,有两种方法解决: 1. 用多个账号做权限认证,然后写一个方法计算各个账号API剩余,采取某种机制调度(治标) 1. 服务器端使用OAuth,向twitter官方申请API豁免(治本,但是不知道是否可行) * 界面完全依赖用户官方在官方定义的风格,不一定合乎其他博客的风格,考虑提供几套主题,甚至用户自定义 * 窗口大小是锁定的,下个目标是做多个大小的模板,最终实现自适应容器大小
鸣谢
推特中文圈 http://twitter.fishnote.net/ (为了尽可能给避免翻墙,增加了广告点击不用谢我哦~~)~~
Flex debug http://www.eb163.com/home/space-20374-do-blog-id-579.html
数据结构提供 ezhung@gmail.com
等等……有些忘记了……