這個欄目最開始調用微博飯否的API來做的,因為眾所周知的緣故,飯否無法使用了,後來採用騰訊的滔滔API來實現.2010年1月26日滔滔業務將會開始和QQ空間心情整合,只能考慮放棄。思來想去,最終還是考慮用Twitter來實現,不過Twitter在國內無法訪問,不能採用js的方式來調用。本部落格的伺服器才國外,用php的方式訪問Twitter的API應該沒有問題,雖然有現成的wordpress外掛程式“Twitter Tools”可以用,但本著盡量少用外掛程式的目的,決定直接用php在wordpress主題裡實現。twritter提供的API介面很豐富,研究一下覺得調用Twitter RSS的API比較簡單,實現如下功能:
1、抓取twitter RSS的內容,不要求輸入密碼,只需要使用者名稱。
2、格式化RSS的內容,顯示使用者本人的推的內容及時間,排除 @replies 回複給他人的資訊內容。
代碼如下:
複製代碼 代碼如下:
<!-- my tritter -->
<?php
$username='xjb';//change this to your twitter username修改為你的twitter 使用者名稱
$feedURL='http://twitter.com/statuses/user_timeline/'.$username.'.rss';
$excludePattern='/'.$username.': @/'; //excludes any @replies排除@replies 內容
$count=5;// show count
$i=0;
if(!$xml=simplexml_load_file($feedURL)){
trigger_error('Error',E_USER_ERROR);
}
foreach($xml->channel->item as $item) {
if ( ! preg_match("$excludePattern", $item->title)) {
$filteredTitle=htmlspecialchars("$item->title");
$filteredTitle=str_replace("$username: ","",$filteredTitle);
//Convert the time zone in China --轉成中國時區
date_default_timezone_set('Asia/Shanghai');
$i++;
if($i>$count)
{
break;
}
?>
<li><?php echo $filteredTitle; ?>
(<?php echo date("Y-m-d H:i:s",strtotime($item->pubDate)); ?>)</li>
<?php } } ?>
<div align="right">
<a href="http://twitter.com/xjb" target="_blank">更多...</a></div>
<!-- my tritter -->
原始碼
複製代碼 代碼如下:
<!-- my tritter -->
<?php
$username='xjb'; //change this to your twitter username --修改為你的twitter 使用者名稱
$feedURL='http://twitter.com/statuses/user_timeline/'.$username.'.rss';
$excludePattern='/'.$username.': @/'; //excludes any @replies --排除 @replies 內容
$count=5;// show count
$i=0;
if(!$xml=simplexml_load_file($feedURL)){
trigger_error('Error',E_USER_ERROR);
}
foreach($xml->channel->item as $item) {
if ( ! preg_match("$excludePattern", $item->title)) {
$filteredTitle=htmlspecialchars("$item->title");
$filteredTitle=str_replace("$username: ","",$filteredTitle);
date_default_timezone_set('Asia/Shanghai'); //Convert the time zone in China --轉成中國時區
$i++;
if($i>$count)
{
break;
}
?>
<li><?php echo $filteredTitle; ?>(<?php echo date("Y-m-d H:i:s",strtotime($item->pubDate)); ?>)</li>
<?php } } ?>
<div align="right"><a href="http://twitter.com/xjb" target="_blank">更多...</a></div>
<!-- my tritter -->