Tag Archives: api

校内开放API:让我们一起抄袭?

先是Facebook开放了一部分代码,之后是校内开始要开放API。这二者有没有必然联系,我不知道,但至少看起来都该是好事。

在校内看了有关API的东西,一些讨论,和那个尚未完成的wiki。现在遇到这种新东西,已经不是很怕了,因为总是可以看Documentaion。然而这次校内的API令我很迷茫,我不知道这究竟是什么,一些人说可以用了,一些人说用了有问题,我说我不知道API在哪里……文档做得实在是太糟糕了,或者说,完成的部分太少了,能供人参考的部分很少。而现在正在做开发的那些人是怎么得到信息的呢?很大程度上,通过Facebook的API。

在校内的API文档稍稍有所进步的时候我再来看这个API,稍加研究,和Facebook的对比,我才发现他们是出奇的相似。从应用的工作原理,到API的函数名,参数名,格式,基本上都是一样的。而如果我想用PHP来写校内应用,该怎么办呢?校内目前提供的官方client library是java的,于是我可以去Facebook下一个PHP的client library,然后把里面的facebook改成xiaonei,FB改成XN,FBML就是XNML……基本上就能工作了……

我本是想,如果没有官方PHP的library,我自己写也未尝不可,然而看了Facebook的代码,我忽然发现,他们写得实在是太好了,我自己写决不可能做得那么简洁、高效,自己写也比拿Facebook的改慢的多。于是,我为什么不拿来改呢?或者说,我为什么不抄呢?

解决的client library,我们再来想究竟写什么应用,在没有任何想法之前,我们很有可能想看看别人写出了什么应用。然而,很不幸,校内上目前似乎还没有谁写出了什么能够用的应用,于是,我们又来到Facebook,这里的第三方应用实在是多得数不清,其中不乏想法精彩,制作出色的东西。而这些,搬到校内上应该也能成功。于是,我们为什么不port呢?我们为什么不抄呢?

校内开放API,我希望这是一件好事。可以预见的就是几个月之后的校内上,会出现各种好玩且有用的第三方应用。然而,我也不希望看到,这些应用中有许多是从Facebook上照搬过来,克隆而成。API的开放,提供的是自由和创新,不是让开发者们跟着校内一起抄袭,或者帮着校内抄袭。

gTimetable beta

O’Camp忙里偷闲,前天看下学期课表,觉得要把这东西弄到Google Calendar上去甚是麻烦。上学期是这么做的,一个个加,要设置循环,时间又难调准(45分钟的课Google老变成1小时……),全都弄好实在是不容易。

于是乎,为了不重复劳动,做这么麻烦的事情,就写个小程序来解决吧。

用了传说中的AJAX,一半是javascript来做的,就是用正则提取信息,生成一个json。服务器端php做的,把json处理了之后,通过gCalendar的API建立相应的事件。Google Apps的API 做的很好,而且用php的话,可以用Zend Framework里面的Zend Google Calendar,主要部分才60行就搞定了。

最后成果在这里 http://www.raptium.cn/gTimetable

使用方法应该不用多说了,就是去学校注考组网页上,把timetable planner那一页[全选][复制][粘贴]……再输入自己的Google账号信息。按下Send,几秒内Google Calendar上就有你的课表啦。

目前仅支持CUHK的课表,其他学校不知格式,如果要做应该也很简单吧。由于时间问题,仅适用于2007-2008 Term 1。

算是一个beta吧,做的比较仓促,应该会有出现没有考虑的情况,有人发现问题的话,欢迎回报。