边栏显示推特消息
@zckevin 前两天提起要用php自己写推特的边栏挂件,我没理解清楚,当做只是在边栏显示推特的消息了,于是弄了这么个粗糙的东西。不过这个小功能应该也还是有不少人需要的吧,需要的取便是。
功能: user_timeline.php 中转推特API的数据,中转文件支持跨域调用,可以限制请求的用户。
使用:将 user_timeline.php 上传至支持 curl 和能访问推特 API 的空间里,然后网页使用 JS 调用,取回 json 格式的数据,处理好之后显示。
详细步骤:
1、引入 jquery,方便跨域调用中转的数据,用 google 托管的
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
不过现在国内网络对它不友好,推荐抛弃它...如果是使用 html5 标准了,可以不指定type
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
这个简单,大部分人的博客本身就准备好的叻。
3、再引入一只 JS,这是用来解析数据的,如果有需求,可以自己修改,或者重写,这个 JS 的源作者应该是 Ray 。可以将我空间里的这份JS另存为再上传到自己的空间。(额,就是要用我的...那也可以的...)
<script type="text/javascript" src="http://api.isouth.org/js/tweet.js"></script>
4、引入了这两个JS之后,一句 javascript 语句:
$.getJSON("http://api.isouth.org/tweet/user_timeline.php?screen_name=qiyi&include_rts=true&count=7&callback=?", twitterCallback2);
只要将请求的 screen_name 修改为自己的名字就可以了,要求自己的推文没有加锁保护。显示消息的地方要求为如下的 html 结构:
<ul id="twitter_update_list">Hello World!</ul>
这里是允许跨域请求的,但是我在我的这个文件里限制了使用用户的,所以就不要尝试调用我的了,php源码:
- <?php
- $allowed_users = array(
- 'qiyi'
- );
- if( !isset($_GET['screen_name']) || !in_array($_GET['screen_name'], $allowed_users) ){
- echo 'the user is not allowed by admin';
- die();
- }
- if(isset($_GET['callback']))
- {
- $callback = $_GET['callback'];
- unset($_GET['callback']);
- }
- $par = '';
- $par .= http_build_query($_GET);
- $user_timeline = 'http://api.twitter.com/1/statuses/user_timeline.json?';
- $user_timeline .= $par ;
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $user_timeline);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- $output .= curl_exec($ch);
- if( 200 == curl_getinfo($ch, CURLINFO_HTTP_CODE) ){
- if(isset($callback)){
- header('content-type: application/x-javascript');
- echo $callback."(".$output.")";
- }
- else{
- echo $output;
- }
- }
- curl_close($ch);
- ?>
效果,看右边。
本文链接: http://isouth.org/archives/328.html , 转载请注明出处,此外还可以订阅我。
沙发!
PS:无关问题,怎样卸载Chrome安装的皮肤……怎样手动安装Chrome的皮肤,每次都要通过web方式么- -?
楼上的“无关问题”很有意思
博主,我回来了,好久不见