Home >Backend Development >PHP Tutorial >Introduction to Sina Weibo API Development - User Authorization (PHP Basics)_PHP Tutorial

Introduction to Sina Weibo API Development - User Authorization (PHP Basics)_PHP Tutorial

WBOY
WBOYOriginal
2016-07-20 10:58:00853browse

Nowadays, more and more people are playing Weibo, and there are more and more third-party application developments for Weibo. I accidentally came into contact with Sina Weibo API development and Sina Weibo API development resources. There are many. Sina Weibo provides a platform for developers. The website address is: http://open.weibo.com. It contains comprehensive information on Sina Weibo development, including developers’ Use and introduction, API function introduction documents in various languages, SDK and other materials.

In the process of development and learning, I feel that although it is not too difficult, there are still some issues that need our attention. Today, in the process of development and learning, I simply used PHP to conduct Sina Weibo The content of API development is organized and explained,

Preparatory work before Sina Weibo API development

First go to Sina Weibo Open Platform to download the PHP-based SDK development package. The download address is: http://code.google.com/p/libweibo/downloads/detail?name=weibo-oauth-class -with-image-avatar-06-29.zip

After downloading, place it in your own development environment and unzip it. It also contains a demo program. We can refer to its sample program to write.

The most important user authorization process in Sina Weibo API development

In fact, many problems during the development process focus on the user authorization stage. The third-party applications I developed use OAuth authorization. The OAuth authorization process is very clear and complete in the Sina Weibo open platform. For introduction, we can go to http://open.weibo.com/wiki/Oauth to view it. I will introduce and explain it here from the perspective of example development.

1. First obtain the unauthorized Request Token


  1. <span><span>$</span><span class="attribute">o</span><span> = </span><span class="attribute-value">new</span><span> WeiboOAuth( WB_AKEY , WB_SKEY  );  </span></span>
  2. $keys = $o->getRequestToken();
  3. //echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);

We need to register an account in the Sina Weibo open platform, or log in directly with our Sina Weibo account, enter My Applications, and then follow the prompts to create our own third-party application. After the creation is completed, we can get Two authorized App Key and App Secret values, these two values ​​are the key to our application development.

After getting the authorization value, we can use the above code to obtain the unauthorized Request Token value, and they will be stored in the $key array variable.

2. Then request the user to authorize Token


  1. <span><span>$_SESSION['keys'] = $keys;  </span></span>
  2. aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , 'http://localhost/ callback.php');

After getting the unauthorized Request Token value, we can use the above code to start preparing to go to the Sina Weibo authorization page for authorization. $aurl is the authorization link page. After we get $aurl, we can use header() to jump directly Go to the authorization page, and then the user enters the Sina Weibo account and password for authorization. After the authorization is completed, it will automatically jump back to the callback page you set in the last parameter: http://localhost/callback.php. You can use this link Set it to the previous page so that it will automatically jump back after the authorization is completed.

It should be noted that it is necessary to set the value of session keys, which is needed to obtain the authorized Access Token below. Many friends may refer to the instructions on the open platform for authorization, but they will find that errors always occur. This is usually the problem. You have not set the session keys value. Of course, you cannot get the Access Token value below. This must be remembered.

3. Finally obtain the Access Token authorized by the user


  1. <span><span> $</span><span class="attribute">o</span><span> = </span><span class="attribute-value">new</span><span> WeiboOAuth( WB_AKEY ,  </span></span>
  2.                      WB_SKEY ,  
  3.                      $_SESSION['keys']['oauth_token'] ,  
  4.                      $_SESSION['keys']['oauth_token_secret']  );  
  5.  
  6. $last_key = $o->getAccessToken(  $_REQUEST['oauth_verifier'] ) ;  
  7. echo($last_key['oauth_token']); 

上面的代码就最终获得了用户授权的Access Token,共两个值,它们保存在$last_key数组变量里面,我们也可以看到,后面的两个参数就是前面我们设置的session值。到此就基本完成了,这就是新浪微博用户授权的一个完整的过程。

授权完成后的工作

在授权完成之后,我们就可以开始调用新浪微博提供的各类API函数接口进行实际应用的开发了,在这里我就获取最新微博记录这个接口进行一个简单说明,其他都类似。

获取最新新浪微博信息的API接口函数是:public_timeline(),样例代码看下面:


  1. <span><span class="comment">//获取前20条最新更新的公共微博消息 </span><span> </span></span>
  2. $c = new WeiboClient( WB_AKEY ,  
  3.                       WB_SKEY ,  
  4.                       $oauth_token ,  
  5.                       $oauth_token_secret  );  
  6.  
  7. $msg  = $c->public_timeline();  
  8. if ($msg === false || $msg === null){  
  9.  echo "Error occured";  
  10.  return false;  
  11. }  
  12. if (isset($msg['error_code']) && isset($msg['error'])){  
  13.  echo ('Error_code: '.$msg['error_code'].';  Error: '.$msg['error'] );  
  14.  return false;  
  15. }  
  16. print_r($msg); 

通常我们在得到用户授权的Access Token值之后,就把它们保存在我们的用户表中,与我们的应用中的帐号进行对应,之后我们在调用新浪微博各api接口时就不用每次都去认证了。

上面的代码很简单,实例化WeiboClient对象,然后直接调用接口函数public_timeline就可以得到返回的信息,如果没有错误的话。通常新浪微博api接口返回的数据格式一般为Json格式或xml格式,而我们在此是用php进行开发,则使用Json格式的数据就有先天的优势,如果返回Json格式数据的话,直接使用php函数json_decode()就可以转换为php常用的array数组格式了。

 


www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/445720.htmlTechArticleMore and more people are playing Weibo now, and the development of third-party applications for Weibo is also increasing The more I learned, the more I accidentally came into contact with Sina Weibo API development and the resources for Sina Weibo API development...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn