Google Reader API资料翻译
【最近有一个关于Google Reader二次开发的想法,如果可以做的话,应该是目前互联网上所没有的,所以在找一些关于Google Reader API的资料,发现原来Google在2005年底就曾经说要发布Google API,但是好像现在还没有,不知道为什么。另外,据说Google Reader是由2.5个Google工程师完成的,比较牛。】
【From:http://www.niallkennedy.com/blog/archives/2005/12/google_reader_a.html】
Google Reader是一个在线的信息聚合工具,由于采用了大量的Javascript技术,因此可以快速的从网络上聚合各类的新闻,Google Reader是典型的前端AJAx展现,后台数据存储的聚合模式。Google Reader的开发模式可以使第三方开发商轻而易举的将Google Reader嵌在自己的应用中,下面,我将给你展示一下Google尚未公开的Reader API。
Google Reader的用户被赋予一个20位的ID,并且通过这个ID来访问Google聚合系统,通过Google自定义的Cookie数据SID,用户可以自己定义数据类型。
种子获取(Reader/Atom/Feed)
Google将不同格式的数据采集之后,统一转换为Atom格式,所有的聚合的帖子内容均在summary元素中进行展示,与My Yahoo!的后台不同,在聚合的内容中并没有附加的数据类型,Google在允许的时候同时会发布content元素。通过Google Reader系统,可以获取下面的任意一种数据格式:
在Feed接口中,可以指定参数n,表示一次性获取的数量,缺省情况下,n=20。
对于Google Reader不能处理的数据,Google全部将之抛弃,这些数据包括命名空间数据,如 Apple iTunes podcast data和Yahoo! Media RSS等,以及附加的作者信息如邮件地址和主页、以及版权信息等等。
订阅列表(Subscription list)
Google Reader的订阅列表包括删除的订阅列表以及用户当前的订阅列表,每一个订阅包含在entry节点中,该节点的信息包括地址URL、发布和更新日期、以及用户自定义的标签(如果用户有定义的话),当前的订阅信息以一个阅读列表的形式进行分类,可以通过将complete属性设置为true获取所有的订阅信息。【From:http://www.niallkennedy.com/blog/archives/2005/12/google_reader_a.html】
Google Reader是一个在线的信息聚合工具,由于采用了大量的Javascript技术,因此可以快速的从网络上聚合各类的新闻,Google Reader是典型的前端AJAx展现,后台数据存储的聚合模式。Google Reader的开发模式可以使第三方开发商轻而易举的将Google Reader嵌在自己的应用中,下面,我将给你展示一下Google尚未公开的Reader API。
上午10:40更新信息:Jason Shellen,Google Reader项目的项目经理,致电给我,告诉我Google先建立了自己的新闻聚合API协议,然后才开发了Google Reader,Google Reader是Google新闻聚合的数据的一个展现Jason确认了我下面的文档描述是非常精确的,并且说Google即将发布它的新闻聚合API接口,最早可能是下个月。Google Reader的开发工程师Chris Wetherell在本篇文章后面的评论中也确认了这一点。一个好的、稳定的新闻种子聚合接口可以大大减少开发者的工作量,Google以它优良的工程师团队和卓越的服务器存储技术为这一切提供了保障,Google Reader可以处理多种新闻种子源的识别和状态校验,从而使开发人员可以基于此致力于更好的人机交互方面和增加各种各样的特性。你可以轻易的处理成千上万的种子信息,并且在多种平台、多种设备上为用户提供更好的交互体验。Google的“透镜”使不同形式的数据经过转换之后,提供给开发人员唯一的一种规范的数据格式。(从而减轻了开发人员的工作量,不需要分别处理各种格式的数据)
Google Reader的用户被赋予一个20位的ID,并且通过这个ID来访问Google聚合系统,通过Google自定义的Cookie数据SID,用户可以自己定义数据类型。
种子获取(Reader/Atom/Feed)
Google将不同格式的数据采集之后,统一转换为Atom格式,所有的聚合的帖子内容均在summary元素中进行展示,与My Yahoo!的后台不同,在聚合的内容中并没有附加的数据类型,Google在允许的时候同时会发布content元素。通过Google Reader系统,可以获取下面的任意一种数据格式:
http://www.google.com/reader/atom/feed/
+ [Feed URL]- Niall Kennedy's Weblog (RSS 2.0)
- Niall's Flickr feed (Atom 0.3)
- del.icio.us popular (RDF)
在Feed接口中,可以指定参数n,表示一次性获取的数量,缺省情况下,n=20。
对于Google Reader不能处理的数据,Google全部将之抛弃,这些数据包括命名空间数据,如 Apple iTunes podcast data和Yahoo! Media RSS等,以及附加的作者信息如邮件地址和主页、以及版权信息等等。
订阅列表(Subscription list)
/reader/atom/user/
[user id]/pref/com.google/subscriptions
下面是我的Google订阅列表,其中用户ID已经被全部置0。我并没有订阅我自己的RSS Feed(index.xml)而且我为我的元数据增加了标签。每一个被列出的种子包括一个author节点,该节点始终为空。或许以后Google会计划增加一些种子请求服务,但是Google的官方Blog却没有作者信息。
阅读列表(Reading List)
/reader/atom/user
[user id]/state/com.google/reading-list
这里是我的一个限定的Google Reader订阅集合范例,可以用n来指定希望返回的新闻数量,缺省n=20。
阅读单个条目(Read Items Only)
http://www.google.com/reader/atom/user/
[user ID]/state/com.google/read
通过标签阅读
/reader/atom/user/
[user id]/label/
[tag]你或许只希望阅读某一个标签下的最新新闻,比如,你标记了很多新闻来源为“市场”,现在你只希望将与“市场”有关的调出来阅读,就可以通过该方法,该方法返回的既包括未阅读的,也包括已经阅读的。已经阅读的条目通过read来进行标记,如(state/com.goole/reader),因此如果你希望屏蔽已读项目的话,可以通过以上的标记来进行。返回的条目数量通过通过参数n来进行控制。
加星标的条目(Starred Item Only)
/reader/atom/user
[user id]/state/com.google/starred
Google Reader用户可以对某一个条目增加星标(星标表示着重标记),通过以上的URL,可以返回增加星标的条目,同样,缺省情况下,n=20。
Google将星标作为一种特殊的标签进行输出。
增加或者删除订阅列表(Add or Delete Subscriptions)
/reader/api/0/edit-subscription
通过Google Reader API,可以增加任意的订阅。
/reader/api/0/edit-subscription
-- base URLac=
["subscribe" or "unsubscribe"] -- requested actions=feed%2F
[feed URL] -- your requested subscriptionT=
[command token] -- expiring token issued by Google. Obtain your token at/reader/api/0/token
.
增加标签
/reader/api/0/edit-tag
通过以下的接口,同样可以增加标签:
/reader/api/0/edit-tag
-- base URLs=feed%2F
[feed URL] -- the feed URL you would like to tagi=
[item id] -- the item ID presented in the feed. Optional and used to tag individual items.a=user%2F
[user ID]%2Flabel%2F
[tag] -- requested action. add a tag to the feed, item, or both.a=user%2F
[user ID]%2Fstate%2Fcom.google%2Fstarred
-- flag or star a post.T=
[special scramble] -- three pieces of information about the user to associate with the new tag. Security unknown and therefore unpublished.
总结:
通过服务器调用,可以方便的在Google的数据的基础上搭建你自己的新闻聚合/阅读工具,通过使用Google的数据,你可以为用户建立更加丰富的应用,通过一个Google的数字ID,你就可以使用了。
Google已经建立了基于Google数据的第一个工具——Google Reader,通过对Google数据的分析,我们有理由相信,Google Reader仅仅是基于Google数据集的工具之一,我个人比较喜欢这种开放的形式,通过这种方式,可以简单的创建Google应用或者第三方应用。
没有评论:
发表评论