wasw100's Blog
上一篇: 下一篇:
2010年05月7日

php curl结合新浪微博使用总结

首先检查自己的php环境是否支持curl,可以使用phpinfo();函数检查。

在学习更为复杂的功能之前,先来看一下在PHP中建立cURL请求的基本步骤:(来源:基于 PHP的cURL快速入门
1. 初始化
2. 设置变量
3. 执行并获取结果
4. 释放cURL句柄
// 1. 初始化
$ch = curl_init();
// 2. 设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, “http://www.nettuts.com”);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
// 3. 执行并获取HTML文档内容
$output = curl_exec($ch);
// 4. 释放curl句柄
curl_close($ch);
第二步(也就是 curl_setopt() )最为重要,一切玄妙均在此。有一长串cURL参数可供设置,它们能指定URL请求的各个细节。要一次性全部看完并理解可能比较困难,所以今天我们只试一下那些更常用也更有用的选项。

在curl_setopt()的各个选项可以参考(http://www.php.net/manual/en/function.curl-setopt.php

简单的例子:

<?php
$ch = curl_init("http://www.baidu.com/");
curl_exec($ch);
curl_close($ch);
?>

下面使用php curl获取关注对象uid列表为例说明如何调用新浪微博api
新浪给的例子是这样的:curl -u uid:password http://api.t.sina.com.cn/friends/timyang.xml?source=appkey(windows的用户可以在http://download.csdn.net/source/2317876下载curl.exe)
我们要做的就是把上面的curl转化为php curl(appKey给 @新浪微博开放平台 发私信获取,你也可以使用分享到新浪微博的appKey2924220432)
下面是实现代码,你只需添上你的appKey userName password 就可以运行了

<?php
$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, "http://api.t.sina.com.cn/friends/ids/wasw100.json?source=appKey");
// 设置是否显示header信息 0是不显示,1是显示  默认为0
curl_setopt($curl, CURLOPT_HEADER, 0);
// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。0显示在屏幕上,1不显示在屏幕上,默认为0
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 要验证的用户名密码
curl_setopt($curl, CURLOPT_USERPWD, "username:password");
$data = curl_exec($curl);
curl_close($curl);
//echo $data;  var_dump($data); 用于显示数据
echo $data;
?>

其它的接口也是类似的调用。
#################################
php使用OAuth和sina微博进行交互
1.到http://code.google.com/p/libweibo/ 下载新浪微博的php lib。根据要求修改一下就可以运行了。
# 下载,然后解压,修改config.php中的key
# 打开index.php,将13行最后一个url改成你网站对应的callback.php的url
2.WeiboClient就可以完成我们的大部分功能,但是在默认配置下,我们不是得到的原样json,我们只需在微博weibooauth.php中搜索public $decode_json = TRUE;,改为false就可以了。
剩下的事就很简单了吧。

–EOF–

返回顶部