快乐不是因为拥有的多而是因为计较的少

获取新浪微博的信息(缓存版)

技术文档 16325浏览 0评论

这篇文章中我将WordPress 博客日志同步到了新浪微博,那么同样的道理也可以将新浪微博的信息更新到本地,如我的微博显示页面:http://loosky.net/?page_id=1579&wptheme=loosky

实现步骤:

1、还是需要下载新浪微博的认证文件,并将你的博客和微博进行连接。

需要的相关文件下载:点击下载

2、获取新浪微博的信息,并进行缓存,代码如下:

//获取新浪微博的内容

function get_sina_t($limit = 10,$length='140',$before = '<li> ', $after = '</li>'){

$tok = get_option('sina_access_token');
if(!$tok) return;

if(!$json = wp_cache_get('sinaWB', 'Loosky')){
$sina_client = new SinaClient(Loosky_AKEY, Loosky_SKEY,$tok['oauth_token'], $tok['oauth_token_secret']);
$sina_profile = $sina_client->verify_credentials();

$u_name = $sina_profile['name'];
$u_id = $sina_profile['id'];
$json = $sina_client->user_timeline($page = 1 , $count = 20 , $uid_or_name =$u_name);

if ($json === false || $json === null){
echo "Error occured";
return false;
}
if (isset($json['error_code']) && isset($json['error'])){
echo ('Error_code: '.$json['error_code'].'; Error: '.$json['error'] );
return false;
}

wp_cache_add('sinaWB',$json, 'Loosky');
}

foreach ($json AS $message){
if (!strpos($message['source'],'未通过审核应用'))
{
$message['source'] = strtoupper($message['source']);
}
else
{
$message['source'] = '<A HREF="HTTP://loosky.net" REL="NOFOLLOW">自由的风</A>';
}
$created_at=date("Y-m-d H:i:s",strtotime($message['created_at']));
$link = "http://t.sina.com.cn/".$u_id; //链接
$form = $message['source']; //来源
$w_id=$message['id']; //微博ID
$WB_name=$message['user']['screen_name']; //微博昵称
$WB_id=$message['user']['id']; //用户UID
$url = "http://api.t.sina.com.cn/".$WB_id."/statuses/".$w_id; //根据微博ID和用户ID跳转到单条微博页面

$output .=  $before . '<div>'.philnaSubstr($message['text'],$length).'</div><div><span>'.$created_at.'</span><span>来自:'.$form.'</span>原文:<a target="_blank" href="'.$url.'">'.$WB_name.'</a></div>'.$after;

}
echo $output;
}

当然了,还得添加一些CSS内容到你的CSS文件:

.mircoblog ul li{border:1px solid #DFDFDF;-moz-border-radius:5px 5px 5px 5px;-webkit-border-radius:5px 5px 5px 5px;list-style-type:none;padding:.5em;margin-bottom:.5em;color:#666;}
.mircoblog ul li .top{margin-bottom:.5em;font-size:14px;}
.mircoblog ul li .mPic{margin-bottom:.5em;}
.mircoblog ul li .mPic img{padding:3px;border:1px solid #E7E7E7;}
.mircoblog ul li .bottom{color:#1E5494;}
.mircoblog span {padding-right:10px;}

3、新建一个微博的模版页面,调用方法:

<div class="content mircoblog">
<ul>
<?php get_sina_t(20);?>
</ul>
</div>

4、在后台新建一个页面,使用微博模版即可。

演示:http://loosky.net/?page_id=1579&wptheme=loosky

PS:如果你发现你微博的发布时间跟实际时间有出入,如相差了八个小时,那么你需要在函数中添加一段代码:

date_default_timezone_set('PRC');

这样就正常了。

转载请注明:自由的风 » 获取新浪微博的信息(缓存版)

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (7)

  1. 这个好 我有空了学习学习

    Japhia2011-04-25 00:04 回复
    • 这个好啊 有空要好好弄弄.嘿嘿

      @Japhia
      没想到你还来串门啊.哈哈.以后我们都要多向博主学习啊 ;-)

      ISayMe2011-04-25 09:35 回复
  2. 博主的 关闭侧栏后都文章页无法还原 还没找到原因吗?俺可是等着博主解决呢哟 ;-)

    ISayMe2011-04-25 09:38 回复
  3. 还是直接调用新浪微博的show比较省力~~

    IM路人2011-04-26 15:16 回复
    • 呵呵,他的样式不太好看,有的时候跟博客不太搭。。。我这种基本上也不会消耗什么资源,定制起来比较方便。

      自由的风2011-04-26 20:10 回复
  4. 有能获取缓存的联系一下我。谢谢大家了。15049945006

    2012-08-01 08:53 回复