原来的时候曾经发过一篇文章《腾讯微博API接口JQUERY插件》,但是由于插件原作者的网站关闭。导致此插件的功能失效。
其实腾讯有自己的微博调用,不过腾讯在微博应用频道发布该应用后,产生了一些自定义的问题,比如说样式的固定单一性。有时候我们只需要腾讯提供微博数据,自己来设计想要显示的样式和效果。
同时腾讯为让微博用户能够更快速、更方便的阅读到自己在腾讯微博中收听的微博消息,并帮助微博应用开发者更简便的通过微博信息进行功能开发,腾讯微博开放平台将“我的微博主页”内容,提供了RSS订阅源/JSONP格式输出。详见:http://open.t.qq.com/resource.php?i=3,3
下面详细的介绍一下通过腾讯通的微博RSS/JSONP格式输出来在个人网站显示微博数据,并设定自己的CSS样式。大体的步骤分为两个,第一个就是获取并解析数据;第二个就是设定显示微博的CSS样式。其实关键就在如何解析数据上。像我的网站顶部腾讯微博的轮换效果的实现步骤如下:
首先是PHP代码:根据以下路径\include\lib\找到function.base.php。添加两个函数。
function show_sy(){ global $CACHE; foreach($CACHE->readCache('newtw') as $value): echo '<li><p>'.$value['t'].'</p><span>——'.smartDate($value['date']).' 来自碎语</span></li>'; endforeach; } function show_weibo() { $num = 5; //显示的数量 $url = ''; //腾讯微博的json地址,改成你自己的,type=1为我的广播,=2为我的首页,建议1 $expire = 259200; //过期时间 $cache_file = EMLOG_ROOT . '/weibo.dat'; //缓存文件 $arr = array(); clearstatcache(); if (file_exists($cache_file) && time() <= (filemtime($cache_file) + $expire)) {//缓存文件存在且未过期则直接读取 $arr = unserialize(file_get_contents($cache_file)); }else{//缓存文件不存在或已过期则读取json数据处理并缓存 $content = file_get_contents($url); $content = str_replace(")", "", str_replace("weiboData(", "", $content)); $weibo = json_decode($content, true); $arrsize = count($weibo['data']); if ($num > $arrsize) {//如果调用条数大于Json返回的条数 $num = $arrsize; } if($arrsize !=0){//如果腾讯数据响应成功 $arr = array_slice($weibo['data'], 0, $num); file_put_contents($cache_file, serialize($arr)); //写入缓存文件 } }//if……else if ($arr) { shuffle($arr); foreach ($arr as $weibo): if($weibo['source']){ echo '<li><p>转发:'.$weibo['source']['content']; }else{ echo '<li><p>原创:'.$weibo['content']; } echo'</p><span>——'.smartDate($weibo['timestamp']).' 来自微博</span></li>'; endforeach; } else { show_sy(); //如果没有取得微博数据则以碎语代替 }//if……else }
本文参考了乱了感觉的文章,在此表示感谢!原文地址:http://messense.me/t-qq-json-php.html
奇怪,在哪呢
@Louis Han:在首页呢@_@
很不错的,新年快乐!
@俊文:新年快乐!{smile:1}
我为了简单点,多余的东西都砍掉了。不过这个还不错。我以前也折腾过
{smile:1}撸过看看