用PHP调用腾讯微博json

首先祝大家龙年快乐,高高兴兴过大年;最近闲在家里看着首页位置很空旷,想把微博消息直接调用到首页上去,这样以后有实时消息就可以发微博并直接在首页上看到了。经过3天的改进,首页已经可以把腾讯微博、新浪微博的广播消息同步出来。

腾讯微博

腾讯微博官方提供了API给我们调用,我们就用它提供的json数据接口来实现微博调用:

首先要用到我之前用php编写的远程获取类

function vita_get_url_content($getjson) {
	if(function_exists('curl_init')) {
		$ch = curl_init();
		$timeout = 5;
		curl_setopt ($ch, CURLOPT_URL, $getjson);
		curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
		$file_contents = curl_exec($ch);
		curl_close($ch);
	} else {
		$ctx = stream_context_create(array(
		   'http' => array(
		       'timeout' => 5 //设置一个超时时间,单位为秒
		       )
		   )
		);
		$file_contents = file_get_contents($getjson, 0,$ctx);
	}
return $file_contents;
}

然后把获取到的变量通过json_decode()转换为数组:

$weibo = json_decode($content, true);
$arr = $weibo['data'];

然后使用下面的关键代码,进行数组处理:

    if($arr) {
	    //array_reverse倒序数组
        foreach(array_reverse($arr) as $item) {
	$time=$item['timestamp'];
	if (in_array((string)$time, $time_arr, true)) {
			echo "---------未更新|不写入----------";
		}else{
			$type="tenxun";
            switch ((int)$item['type']) {
                case 1:
			$content=replace_url($item['content']);
//			my_sqlite($type,$content,$time);
                    break;
                case 2:
			$content='转播:'.replace_url($item['content']).''.$item['source']['nick'].''.replace_url($item['source']['content']);
                    break;
                case 4:
			$content=$item['nick'].' 对'.$item['source']['nick'].' 说: '.replace_url($item['content']).''.$item['source']['nick'].' '.replace_url($item['source']['content']);
                    break;
                case 5:
			$content='说:'.replace_url($item['content']);
                    break;
                default:
                    break;
            }	//switch end
			my_sqlite($type,$content,$time);
		}	//else end
        }	//forsearch end
    }else{
        echo '暂时无法读取腾讯微博数据';
    }

上面函数首先对处理好的数组进行判断,如果数组正常,则对数组循环调用,把每个调用值输出到变量$item中,变量$item包含了所以需要输出的值:微博用户名、微博内容、发布的时间等。

再加上一些css样式处理,首页实时更新微博的功能就实现了。

来看一下预览效果(http://malu.me/ ):

下一篇文章将介绍新浪微博的数据处理

此条目是由 malu8 发表在 未分类 分类目录的。将固定链接加入收藏夹。

评论已关闭。