twitese1.1 新增list功能
2009-11-27
更新
个人挺喜欢twitter的list功能,在follow的人多的时候尤为有用,这两天抽出时间给twitese加上了list功能,顺便改正一些小bug。
修改的bug:
php空间开启magic_quotes情况下单引号双引号前多了”的问题
消息自动刷新时执行时间超时出现的错误
修正国内空间无法搜索的问题
……还有其他一些小错误
更新:
list的查看,新增list、list成员等功能 P.S list消息界面会自动刷新
新增API limit显示
去除config.php里的SEARCH_API设置,改成在程序里自动判断
FAQ页面
待增加的功能:
图片上传、黑名单、短网址、cookie加密(原先的有错误,暂时不用了)、ajax自定义(自动刷新时间间隔,提示条隐藏等)
项目主页:http://code.google.com/p/twitese/
预览:http://twitese.webbang.net/
命名
在twitter上咨询了list翻译成中文要叫啥好,推友的答案是“列表 推列 李斯特 群组 自分类 圈子”,个人倾向于推列和群组,那么就组合一下,叫推群好了,觉得这名字还算合适吧。
API Limit
做twitese,受twitter API rate limit的限制太大了,也就是一小时限制请求150次API,超过了就要等下个小时重置才能继续。一般可以申请twitter白名单,能将每小时限制次数提高到20000次,这样几乎就没什么限制了,但做twitese是开源由大家自由架设的,总不可能要求每个架设的人都申请白名单。于是都得小心翼翼地使用API,能省既省,于是不能每次刷新页面的时候都更新用户数据,省略了每次进入用户页面就要判断是否已经加入黑名单的功能,等等。做list的时候发现要用的请求数太多了,于是,现在的list添加成员方法只有那么很不方便的一种,以后再想办法改进吧。
list API
做的过程着实被list的API恶心了不止一次。总结一下:
1.先看看list的所有API
List Methods
POST lists (create)
POST lists id (update)
GET lists (index)
GET list id (show)
DELETE list id (destroy)
GET list statuses
GET list memberships
GET list subscriptionsList Members Methods
GET list members
POST list members
DELETE list members
GET list members idList Subscribers Methods
GET list subscribers
POST list subscribers
DELETE list subscribers
GET list subscribers id
你单看名字能知道这个API是干嘛的吗?能的话算你牛,这是第一个恶心的地方。以前的API功能是什么都是一目了然的。
例如GET list subscribers id是检查用户是是否已经follow某个list ,而GET list subscribers是返回用户follow的所有list,两者名字上的差别就是差一个单词”id”,牛。
2.每一个list API地址都是http://api.twitter.com/1/开头的,旧的API都是以http://twitter.com开头的,接下来说的你可能会看晕:
list大部分API可以用http://twitter.com代替http://api.twitter.com/,结果一样,但有些就不行:
http://api.twitter.com/1/bang590/lists.xml 可行
http://twitter.com/1/bang590/lists.xml 可行
http://api.twitter.com/1/bang590/lists/subscriptions.xml 可行
http://twitter.com/1/bang590/lists/subscriptions.xml 不可行
犯晕了没?后来无意中发觉,把所有http://api.twitter.com/1/改成http://twitter.com/就都可行了,这才让我可以继续做下去:
http://twitter.com/bang590/lists/subscriptions.xml 可行
官方API文档完全没有提到这回事,这在考验程序员的悟性么?
3.有些API完全不可用,例如GET list subscribers id,怎么搞都是出现404找不到页面,于是现在还没有判断用户是否已经关注某个list的功能。
4.最恶心的一点,为list添加和删除成员,竟然不接受“bang590”这样的用户名,而只支持一长串数字的用户ID。一直以来screen_name一直都被当做id用,在这里竟然不被支持,这下脑残了,我必须通过screen_name请求users/show,返回这个用户对应的id,再传给list添加成员的API,才能成功添加成员。list添加成员是不限制API的,但users/show要,也就是说,每添加和删除一个成员,就要用到一次API请求……巨脑残,难道是我没找到更好的办法?
总结四个字:乱七八糟
list功能没经过很多测试,所以应该还有大大小小挺多错误的,大家指正吧。
棒哥真棒!!!
您辛苦了!!!