google提供的几种读取feed的API
2011-11-12 11:11
295 查看
http://blog.csdn.net/abby_dcy/article/details/5739358
通过Google Reader API使用n参数读取feed历史条目的方法。使用google 提供的API访问feed除了可以访问到历史条目外,还让google 处理各式各样的feed格式(Atom 1.0,Atom 0.3,RSS 2.0,RSS 1.0,RSS 0.94,RSS 0.93,RSS 0.92,RSS 0.91,RSS 0.9),统一返回一种格式(ATOM或JSON),为开发中在程序中解析feed提供便捷。
本文总结我在开发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,精确到秒。需要把时间转换成Unix
Timestamp.
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
[b]<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
服务器随机产生,你看到的字符串和我这里写的是不一样的。
除了只读接口外,google 还有写入api。完整的ATOM API可以在这里找到,作者还开发了一套Python
Library。但是需要注意的是google reader从未正式发布此api,因此接口随时可能改变甚至取消。
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 接口
Google
AJAX Feed API 是Google 提供的一套javascript 类库,自动处理跨域调用和feed格式,主要目的是简化web开发者读取,操作以及显示feed的过程。同时它也提供了一个RESTful的API,供非Javascript客户端调用。以下例子来自官方文档,要读取Digg的feed源(http://www.digg.com/rss/index.xml),只需访问url: http://ajax.googleapis.com/ajax/services/feed/load?q=http%3A%2F%2Fwww.digg.com%2Frss%2Findex.xml&v=1.0
地址必须用http协议访问才有效,直接读取如java.io的read就会报302错误,具体原因不明,可能是要在请求头里加一些参数
通过Google Reader API使用n参数读取feed历史条目的方法。使用google 提供的API访问feed除了可以访问到历史条目外,还让google 处理各式各样的feed格式(Atom 1.0,Atom 0.3,RSS 2.0,RSS 1.0,RSS 0.94,RSS 0.93,RSS 0.92,RSS 0.91,RSS 0.9),统一返回一种格式(ATOM或JSON),为开发中在程序中解析feed提供便捷。
本文总结我在开发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,精确到秒。需要把时间转换成Unix
Timestamp.
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的头可以找到这样的代码:
[b]<gr:continuation
xmlns:gr="http://www.google.com/schemas/reader/atom/">[b]CLXq-OrG05sC</gr:continuation>[/b][/b]
类似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
服务器随机产生,你看到的字符串和我这里写的是不一样的。
除了只读接口外,google 还有写入api。完整的ATOM API可以在这里找到,作者还开发了一套Python
Library。但是需要注意的是google reader从未正式发布此api,因此接口随时可能改变甚至取消。
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 接口
AJAX Feed API 是Google 提供的一套javascript 类库,自动处理跨域调用和feed格式,主要目的是简化web开发者读取,操作以及显示feed的过程。同时它也提供了一个RESTful的API,供非Javascript客户端调用。以下例子来自官方文档,要读取Digg的feed源(http://www.digg.com/rss/index.xml),只需访问url: 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
地址必须用http协议访问才有效,直接读取如java.io的read就会报302错误,具体原因不明,可能是要在请求头里加一些参数
相关文章推荐
- google提供的几种读取feed的API
- google提供的几种读取feed的API
- 利用 Google AJAX Feed API 跨域读取 RSS
- google ajax feed API 应用——新闻聚合
- 在云平台上基于Go语言+Google图表API提供二维码生成应用
- ArcGIS api for flex读取下载到本机的google瓦片地图 web墨卡托投影
- 利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
- Google Feedfetcher开始提供订阅数
- How to: Check if User Has Certian Permission – Facebook API (通过facebook提供的php版本的SDK发送feed)
- 将RSS生成HTML - Google AJAX Feed API
- Google Feedfetcher开始提供订阅数
- Google Weather API Feed Documentation
- 在云平台上基于Go语言+Google图表API提供二维码生成应用
- Google Map API使用详解(十四)——使用Google Map提供的默认控件
- 利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
- Google官方支持的NodeJS访问API,提供后台登录授权
- Google Blogger提供Feed重定向功能
- Google Map API使用详解(十四)——使用Google Map提供的默认控件
- Google Blogger提供Feed重定向功能
- Google官方支持的NodeJS访问API,提供后台登录授权