使用新浪微博开放平台api同步微博内容至自己网站(新浪微博API开发简介之用户授权(PHP基础篇)的相关内容吗)
优采云 发布时间: 2022-03-02 09:23使用新浪微博开放平台api同步微博内容至自己网站(新浪微博API开发简介之用户授权(PHP基础篇)的相关内容吗)
想了解新浪微博API开发的用户授权(PHP基础)?、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,按照提示创建自己的第三方app。创建完成后,我们可以得到两个授权的App Keys和App Secret值这两个值是我们应用开发的关键
获取到授权值后,我们可以使用上面的代码获取未授权的Request Token值,该值会存储在$key数组变量中
2.然后请求用户授权Token
复制代码代码如下:
$_SESSION['keys'] = $keys;
aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , '');
拿到未授权的Request Token值后,我们就可以使用上面的代码开始准备去新浪微博授权页面进行授权了。$aurl 是授权链接页面。获取到$aurl后,我们可以使用header()直接跳转到授权页面,然后用户输入新浪微博账号和密码进行授权。授权完成后会自动跳转回你在最后一个参数中设置的回调页面:可以将此链接设置为上一页,这样授权完成后会自动跳转回来。
需要注意的是,需要设置会话密钥的值。需要获取下方授权的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 数组变量中。我们还可以看到,最后两个参数是我们之前设置的会话值。这基本完成了。这是新浪微博用户授权的完整流程
授权完成后工作
授权完成后,我们就可以开始调用新浪微博提供的各种API函数接口进行实际应用开发了。在这里,我将获得最新的微博记录。这个界面会给出一个简单的解释。其他类似。
获取新浪微博最新信息的API接口函数为: public_timeline() 示例代码如下:
复制代码代码如下:
//获取前20条最新更新的公众微博消息
$c = new WeiboClient( 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'].'; 错误: '.$msg['error'] );
返回假;
}
print_r($msg);
通常,我们在获取到用户授权的Access Token值后,将其保存在我们的用户表中,并对应于我们应用程序中的账户。我们调用新浪微博的各个api接口后,不需要每次都进行认证。
上面的代码很简单,就是将 WeiboClient 对象实例化,然后直接调用接口函数 public_timeline 来获取返回的信息。如果没有报错,新浪微博api接口返回的数据格式一般是Json格式或者xml格式,我们这里使用php。对于开发来说,使用 Json 格式的数据具有先天的优势。如果返回Json格式数据,可以直接使用php函数json_decode()将其转换为php常用的数组格式。