本文总结我在开发FeedzShare 的过程中找到的的几种读取feed的Google API,其中有些来自于Google 官方文档,有些来自于对网上开发者google web 应用的hacking。

1。Google Reader ATOM API
访问http://www.google.com/reader/atom/feed/<feed url>, 读到ATOM格式的最近20条item。

可选参数:
n:返回多少条记录。http://www.google.com/reader/atom/feed/http://blogs.msdn.com/vcblog/rss.xml?n=100 返回最近100条;

r:  按时间排序,缺省是从最近的开始(r=d),可以改成从最老的开始(r=o),好像最多回溯一个月;

ot:只读取某个时间点以后的item,精确到秒。需要把时间转换成
http://www.google.com/reader/atom/feed/http://blogs.msdn.com/vcblog/rss.xml?ot=1250120710 就只返回2009年8月12日6:45:10pm 以后的记录;

c:分页读取记录。用n=99999的方式读取feed所有记录虽然可行,但一次性返回大量数据既消耗服务器资源,严重影响scalability,同时客户端调用时也容易超时。因此Google 提供了cursor方式分页读取。关于cursor方式分页,这篇blog"用Twitter的cursor方式进行Web数据分页"有很好的介绍. 读取http://www.google.com/reader/atom/feed/http://blogs.msdn.com/vcblog/rss.xml?n=10 时,在返回的ATOM XML的头可以找到这样的代码:

<gr:continuation xmlns:gr="http://www.google.com/schemas/reader/atom/">CLXq-OrG05sC</gr:continuation>


类似CLXq-OrG05sC这样的字符串就是读取下一页用的参数。要读取下一页10条记录,使用这样的url访问:http://www.google.com/reader/atom/feed/http://blogs.msdn.com/vcblog/rss.xml?n=10&c=CLXq-OrG05sC
返回的XML中又能找到新的continuation参数,这样反复下去,直到读完所有记录。注意continuation是google 服务器随机产生,你看到的字符串和我这里写的是不一样的。



2。Google Reader Javascript 接口

除了返回ATOM 格式外,Google Reader其实还能返回JSON格式的数据. 如果是希望在页面中显示feed,不需要调用复杂的XML API,直接从Javascript中操作JSON数据就行了。
要读取JSON数据,需要访问这个url:http://www.google.com/reader/public/javascript/feed/<feed url>。

上面介绍的各项参数在Javascript接口中都能使用。但是Javascript接口与ATOM接口的区别在于不返回feed 条目的全文,只返回google rader 服务器处理过的摘要(summary字段)。在有些不需要显示全文的场景(只显示列表)利用这一特点可以大大减少返回的数据量,无论是网络传输和解析时间都会快很多。

 

3。Google AJAX Feed 接口

http://ajax.googleapis.com/ajax/services/feed/load?q=http%3A%2F%2Fwww.digg.com%2Frss%2Findex.xml&v=1.0

Google AJAX Feed API能返回JSON和ATOM格式的数据,甚至可以返回JSON和XML混合格式。返回JSON格式时和Google Reader Javascript 接口不同的是它返回全文feed,而不仅仅是摘要。而ATOM格式甚至支持feed源自定义字段,如上文digg 的RSS中被digg的次数。

可用参数:
num:返回记录数量,最大100

相关文章:

  • 2021-11-29
  • 2021-08-01
  • 2022-12-23
  • 2021-08-16
  • 2022-01-22
  • 2022-12-23
  • 2022-12-23
  • 2021-12-17
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-20
  • 2021-12-19
  • 2022-12-23
  • 2022-03-08
相关资源
相似解决方案