打印本文 打印本文 关闭窗口 关闭窗口
获得(或采集)腾讯微博的信息源的方法
作者:武汉SEO闵涛  文章来源:武汉SEO  点击数1829  更新时间:2011/9/16 8:55:17  文章录入:mintao  责任编辑:mintao

获得(或采集)腾讯微博的信息源的方法.熟悉我的人都知道我之前用的是嘀咕,但是自从嘀咕转型后就没怎么去用过了。现在以邪恶的企鹅微博为主,但是一直以来腾讯微博的调用是个麻烦事,它的微博秀使用iframe标签来嵌入的,让人很蛋疼,不能去修改它的显示样式,完全不能和博客同风格。前段时间开放平台中放出了RSS和JSONP的地址,这样的话就能够订阅到最新的消息了。

开始告诉你们怎么折腾吧,首先你要有两个QQ,第一个是你当前用的,第二个随便什么都可以。然后用你第二个QQ去开通微博,收听你但前用的微博,注意,只能收听你自己一个,那些什么推荐收听的V都跳过。最后你再进入这里,获得JSONP的地址。下面给出关键的代码部分。


function get_qq_mirco_blog_info($format = '<a href="{permalink}">{content}</a>',$num = 20) { $qqRSS = '这里填写JSONP地址'; //注意:是第二个QQ的JSONP地址 $contents = file_get_contents($qqRSS); $str1 = strpos($contents,'['); $str2 = strpos($contents,'],"fans":'); $json = substr($contents,$str1, $str2 - 17);//这个地方不知道是否通用 $json = stripslashes($json); $json = json_decode($json, true); for ($i=0;$i<$num;$i++){ $content = $json[$i]['content']; //内容 $time = date("n月d日 H:i",$json[$i]['timestamp']); //时间 $permalink = "http://t.qq.com/p/t/".$json[$i]['id']; //链接 $form = $json[$i]['fromarea']; //来源 $type = get_qq_mirco_blog_type_info($json[$i]['type']); //类型 $count = $json[$i]['count']; //转载次数 echo str_replace(array('{content}','{time}','{permalink}','{form}','{type}','{count}'),array($content,$time,$permalink,$form,$type,$count),$format); } } function get_qq_mirco_blog_type_info($type) { $result = ""; switch ($type) { case 2: $result = "转播: "; break; case 3: $result = "私信: "; break; case 4: $result = "回复: "; break; default: } return $result; }

把这段代码放入function.php文件中,然后在模板中调用如下代码:


get_qq_mirco_blog_info();

该函数有两个参数,第一个是定义的格式,格式的参数请看for循环里面的注意;第二个是调用的条数,最多20条。

具体的调用代码就是这样了,我没有单独的测试,反正在自己的博客中是没有问题的,效率上我也不能保证什么,但是至少是比民间的API快吧,还有什么问题请留言吧。另外再给出一个获得RSS版的代码。


$qqRSS = 'RSS地址'; $XML =new DomDocument; $XML->load($qqRSS); $Items = $XML->getElementsByTagName("item"); echo "<ul>"; foreach ($Items as $Item) { $title = $Item->getElementsByTagName("title")->item(0)->nodeValue; //内容 $link = $Item->getElementsByTagName("link")->item(0)->nodeValue; //链接 $time = $Item->getElementsByTagName("pubDate")->item(0)->nodeValue; //发布时间 $times = time_tran(date("Y-m-d H:i:s",strtotime($time))); //发布时间 echo '<li><div class="top">'.$title.'</div><div class="bottom"><a target="_blank" href="'.$link.'">'.$times.'</a></div></li>'; } echo "</ul>";
打印本文 打印本文 关闭窗口 关闭窗口