使用新浪微博开放平台api同步微博内容至自己网站( 利用PHP进行新浪微博API开发的内容进行一个整理和说明)
优采云 发布时间: 2021-10-23 02:08使用新浪微博开放平台api同步微博内容至自己网站(
利用PHP进行新浪微博API开发的内容进行一个整理和说明)
新浪微博API开发用户授权介绍(PHP基础)
更新时间:2011-09-25 22:52:37 作者:
在开发和学习的过程中,感觉虽然不是太难,但还是有一些问题需要大家注意。今天在开发学习的过程中,简单的用PHP开发了新浪微博API。整理和说明内容
现在玩微博的人越来越多,微博上的第三方应用开发也越来越多。偶然接触到新浪微博API开发。新浪微博API开发资源比较大。新浪微博为开发者提供了一个平台。网站为: 收录新浪微博开发的综合信息,包括开发者的使用和介绍、各种语言的API功能介绍文档、SDK等资料。.
在开发和学习的过程中,感觉虽然不是太难,但还是有一些问题需要大家注意。今天在开发学习的过程中,简单的用PHP开发了新浪微博API。内容组织和解释,
新浪微博API开发前的准备
首先到新浪微博开放平台下载基于PHP的SDK开发包。下载地址为:
下载完成后放到自己的开发环境中解压。演示程序也包括在内。我们可以参考它的示例程序进行编写。
新浪微博API开发最重要的用户授权流程
事实上,开发过程中的很多问题都集中在用户授权阶段。我开发的第三方应用使用的是OAuth授权。OAuth授权流程在新浪微博开放平台上有非常清晰完整的介绍。我们你可以看看。这里我将从示例开发的角度进行介绍和说明。
1.首先获取未授权的Request Token
复制代码代码如下:
$o = new WeiboOAuth( WB_AKEY, WB_SKEY );
$keys = $o->getRequestToken();
//echo($keys['oauth_token'].':'.$keys['oauth_token_secret']);
我们需要在新浪微博开放平台注册一个账号,或者直接用我们的新浪微博账号登录,进入我的应用,然后按照提示创建我们自己的第三方应用。创建完成后,我们可以得到两个授权App Key和App Secret值,这两个值是我们应用开发的关键。
获取到授权值后,我们可以通过上面的代码来获取未授权的Request Token值,该值会保存在$key数组变量中。
2. 然后请求用户授权token
复制代码代码如下:
$_SESSION['keys'] = $keys;
aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false,'');
获取到未授权Request Token值后,我们就可以使用上面的代码准备去新浪微博授权页面进行授权了。$aurl 是授权链接页面。得到$aurl后,我们可以使用header()直接跳转到它。授权页面,然后用户输入新浪微博账号和密码进行授权。授权完成后会自动跳转回你最后一个参数设置的回调页面:这个链接可以设置为上一个页面,这样授权完成后会显示 再次自动跳转回来。
需要说明的是,需要设置session key的值,下面获取的授权Access Token中需要该值。很多朋友可能会参考开放平台上的说明进行授权,但是发现总是报错。这通常是问题所在。您尚未设置会话的键值。当然,下面的Access Token的值是无法获取的。必须记住这一点。
3.用户最后授权的Access Token
复制代码代码如下:
$o = new WeiboOAuth( WB_AKEY,
WB_SKEY,
$_SESSION['keys']['oauth_token'],
$_SESSION['keys']['oauth_token_secret'] );
$last_key = $o->getAccessToken( $_REQUEST['oauth_verifier']);
回声($last_key['oauth_token']);
以上代码最终获得了用户授权的Access Token。有两个值,它们存储在 $last_key 数组变量中。我们也可以看到最后两个参数是我们之前设置的session值。至此,基本完成。这是一个完整的新浪微博用户授权流程。
授权完成后工作
授权完成后,我们就可以开始调用新浪微博提供的各种API函数接口进行实际应用开发了。这里我简单介绍一下获取最新微博记录的界面。其他类似。
获取新浪微博最新信息的API接口函数为:public_timeline(),示例代码如下:
复制代码代码如下:
//获取前20条最新更新的公众微博新闻
$c = 新微博客户端( WB_AKEY,
WB_SKEY,
$oauth_token,
$oauth_token_secret );
$msg = $c->public_timeline();
if ($msg === false || $msg === null){
echo "发生错误";
返回假;
}
if (isset($msg['error_code']) && isset($msg['error'])){
echo ('Error_code:'.$msg['error_code'].'; Error:'.$msg['error'] );
返回假;
}
打印_r($msg);
通常我们拿到用户授权的访问令牌值后,我们将它们保存在我们的用户表中,并与我们应用程序中的帐户相对应。之后我们就不用每次调用新浪微博的API接口都去。认证。
上面的代码很简单,实例化WeiboClient对象,然后直接调用接口函数public_timeline获取返回的信息,如果没有错误。通常新浪微博api接口返回的数据格式一般是Json格式或者xml格式,而我们这里是用php开发的,使用Json格式的数据有先天优势,如果返回Json格式的数据,使用php 函数 json_decode() 可以直接转换成 PHP 常用的数组格式。