WordPress:如何将GoogleBuzz数据插入到博客中

分类:Hack技巧 发表时间:2010年02月20日 字体大小:12号14号

我一直在试图找一种将一些实时状态消息集成到博客中作为公告消息的方法,Twitter被封,新浪围脖貌似没有公开的API,自己做一个吧,在别的网站上也不显示。好在月初的时候Google出了Buzz,这样我就可以有一个实时的公告了。

在国外的博客上发现了下面的一段代码,可以通过Ajax跨域读取Buzz数据,以Json数据格式返回,我只需将返回的数量罗列成一个列表即可。代码如下:

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
jQuery(function($) {
	(function(){
		var username = 'hiro.zhd',		//gmail用户名
			num = 5,		//期望加载几条数据	
			div = $('#buzz');	//列表显示的盒子
 
	   // 需要传给Google Feed API 的参数 : Buzz Feed URL, Number of Entries 
	   var data = {q:'http://buzz.googleapis.com/feeds/' + username + '/public/posted', 
				num:num,
				output:'json',
				v:'1.0'};
	   // 调用Google Feed API
	   $.ajax({
		  url:'http://ajax.googleapis.com/ajax/services/feed/load',
		  data:data,
		  dataType:'jsonp',
		  success:function(json){
			 // 通过Google Feed API返回json数据
 
			 // 若返回状态标记错误,给出错误提示信息
			 if(json.responseStatus!=200) {
				div.html('<b style="color:red">'+ json.responseDetails +'</b>');
				return; 
			 };
			 // Buzz 记录是以一个数组返回
			 var entries= json.responseData.feed.entries;
			 var length= entries.length;
 
			 // length为0,表示没有任何记录
			 if(length==0) return; 
 
			 // 默认开始添加一个隐藏的列表元素,以便后边动画地显示
			 var ul = $('<ul class="gb" style="display:none"></ul>').appendTo(div.html(''));
 
			 // 循环buzz数组
			 for(var i=0; i<length ; i++){
				// 格式化发布时间
				var pDate = new Date(entries[i].publishedDate);
				// 获得内容
				var snippet = entries[i].contentSnippet;
				// 通过正则表达式转换链接的http格式
				snippet = snippet.replace(/\b(https?\:\/\/\S+)/gi,' <a href="$1">$1');
 
				ul.append('<li>'
				   +'<span class="gb-content">'+ snippet +'</span>'
				   +'<span class="gb-meta">'
					  + '<a href="'+ entries[i].link +'">'+ pDate.toLocaleString() +'</a>'
				   +'</span>'
				+'</li>');
			 };
 
			 ul.fadeIn('slow');
		  }
	   });
	})(jQuery);    //只有jQuery方法实例化完成后才执行
});
</length>

在此处我使用的是匿名函数的方式(),在函数体内部使用$.ajax()方法,通过设置dataType:’jsonp’来跨域读取json数据后,遍历数据获得列表并显示出来。

downloaddemo

不错不错,已经有 个评论!
  1. 如果buzz更新快一些,不失为代替twitter的一种方法

    • Twitter上不了,所以只能起到Buzz了!

  2. 只有这样了咯

  3. 不错哈,好东西

  4. fefe

    good

  5. Buzz上依然不够热闹,不知道是否先入为主的原因,感觉Buzz虽然整合Gmail但是并没有其他Mini Blog实用和使得人们疯狂。

    Hiro你发的代码,不错,拿来试试!

    • 欢迎品尝!

  6. 很有幸趣试一试。呵呵!

  7. 前几天Gmail提示开通GoogleBuzz,刚开通,还不怎么会用。

  8. 很好的文章,国内的微博就是差点,特别是大站的,连API也不开。。无非就是让我们去看他们网站,然后顺便看广告吗?

我要评论

  • * *