利用Google Feed API即时展示其它博客的Feed

去年我曾经介绍过在一个博客即时调用其它博客的RSS Feed的方法-利用Google Reader。这种方法的好处是你不需要知道任何技术细节,你只需要添加订阅到GR,制作一个Tag,然后设置成公开,最后调用。然而这种简单的方法有个不好的地方,一是在调用列表的底部会有个多余的Read More链接,另外无法预览文章摘要。利用Google Feed API可以很好地解决这个问题。

上图的Feed调用同时出现在可能吧右侧栏的底部。
除了可以单独调用一个Feed,还可以同时调用多个,如下图所示:

如何利用Google AJAX Feed API实现这个调用呢?
如果你对代码有恐惧感,不用害怕,放心看下去,你会发现即使你和我一样是代码白痴都能很好地使用Feed API。
下面一个最简单的Feed调用代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<div id="feed-control"><span style="padding-right: 4px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; margin: 10px; color: #676767; padding-top: 4px">正在加载...</span>&nbsp;</div> 
<!-- Google Ajax Api 
  --><script src="http://www.google.com/jsapi?key=你的API KEY" 
    type="text/javascript"></script><!-- Dynamic Feed Control and Stylesheet --><script src="http://www.google.com/uds/solutions/dynamicfeed/gfdynamicfeedcontrol.js" 
    type="text/javascript"></script> 
<style type="text/css"> 
 
    @import url("http://www.google.com/uds/solutions/dynamicfeed/gfdynamicfeedcontrol.css"); 
  </style> 
<script type="text/javascript"> 
 
function LoadDynamicFeedControl() { 
      var feeds = [{title: '可能吧', url: 'http://feeds.kenengba.com/kenengbarss' }]; 
      var options = { 
        numResults : 8, 
        displayTime : 2000, 
        fadeOutTime : 500, 
        scrollOnFadeOut : true, 
        pauseOnHover : true, 
        stacked : false, 
        horizontal : false, 
        title : '可能吧' 
      } 
 
new GFdynamicFeedControl(feeds, 'feed-control', options); 
    } 
// Load the feeds API and set the onload callback. 
google.load('feeds', '1'); 
google.setOnLoadCallback(LoadDynamicFeedControl); 
</script>

将上面的模板稍作修改,就能在博客上调用其它博客的Feed。
哪些参数可以修改呢?
1、要调用的Feed
将要调用的Feed(一个或多个)写入到"var feeds"里头,格式如{title: '可能吧', url: 'http://feeds.kenengba.com/kenengbarss' }要,调用多个Feed,中间用逗号分割。
2、常用参数:


numResults : color=#ff0000> 8, color=#000000>(展示条目数,这里用8)
color=#0000ff>displayTime :
2000,
(单个项目展示时间,这里用2000毫秒)

color=#0000ff>fadeOutTime :
500,
(渐变消失时间,这里用500毫秒)

color=#0000ff>scrollOnFadeOut : color=#ff0000> true, color=#000000>(滚动消失,设置成false的话每个条目将以淡出的方式消失)
color=#0000ff>pauseOnHover :
true,
color=#000000>(设置成false的话鼠标经过某个条目不会显示摘要)

color=#0000ff>stacked :
false,

(设置成true的话将在同时展示多个feed,false则轮番展示)

color=#0000ff>horizontal :
false,
color=#000000>(设置成true的话将以一个一个条目地展示feed,而不是列表形式)

color=#0000ff>title :
'可能吧'
(标题)

每个参数之间用逗号分割。更多高级参数可以参考Google的帮助文档。
3、申请API Key
注意到模板中的“你的API Key“,要调用Feed API,你需要首先到这里申请API KEY,马上就能生成。
4、CSS修改
大多数情况下你不需要去修改CSS,除非你是个特别喜欢自定义的人。
默认情况下,FeedAPI调用的是http://www.google.com/uds/solutions/dynamicfeed/gfdynamicfeedcontrol.css这个CSS样式,如果你想个性化一点,可以下载这个CSS,然后修改成自己喜欢的样式。
然后在将新的CSS添加到模板里。
5、加入到博客
将修改好的整块代码放入到你想展示的位置,就像可能吧的右侧栏。
6、抓取频率
Google AJAX Feed API对feed的抓取大概是1小时一次。更新量大的博客抓取频率会相应提高。
7、遇到的问题
如果不修改CSS,在IE7下Feed API显示正常, 但在Firefox
2下不能调用CSS,也就是第三点中提到的默认CSS。我不知道这是不是我个人遇到的问题。
要解决这个问题很简单,将默认的CSS下载,然后将里面的内容复制到模板中,替换:

@import url
("http://www.google.com/uds/solutions/dynamicfeed/gfdynamicfeedcontrol.css");


即可。
8、其它用途
1、展示最新留言(Wordpress提供最新评论的RSS输出)。
2、模拟Friend Feed。Friend Feed也是将所有RSS合并在一起,利用Google AJAX Feed API,你完全可以实现Firend Feed所能实现的功能。
最后,希望我的表述你能完全理解。
 
转自:http://www.kenengba.com/post/460.html

发表评论(咦,这里还有个板凳哦!)

设置头像

*

:wink: :twisted: :smile: :sleep: :shock: :sad: :roll: :razz: :oops: :neutral: :mad: :grin: :evil: :eek: :cry: :cool:

  1. 小宅 说:

    这是个好东西啊,咱没留言呢。
    用它就可以实现同步Twitter到博客上了。