新浪微博API开发简介之PHP基础篇-用户授权

  现在玩微博的人越来越多了,而关于微博的第三方应用开发也越来越多,自己在偶然间开始接触了新浪微博API开发,新浪微博API开发的资源比较多,新浪微博提供了一个开发者的平台,网址是:http://open.weibo.com,它里面有很全面的新浪微博开发的资料,包括开发者的使用和介绍,各种语言的API函数介绍文档,SDK等多种资料。

  自己在开发和学习的过程中,感觉虽然没有太大难度,但还是有一些问题是需要我们注意的,今天就我在开发和学习的过程中,简单的对利用PHP进行新浪微博API开发的内容进行一个整理和说明,

  新浪微博API开发前的准备工作

  首先到新浪微博开放平台下载基于PHP的SDK开发包,下载地址是:http://code.google.com/p/libweibo/downloads/detail?name=weibo-oauth-class-with-image-avatar-06-29.zip

  下载完成后放到自己的开发环境中并解压,在其中也包含了demo演示程序,我们可以参考其样例程序进行编写。

  新浪微博API开发最重要的用户授权过程

  其实在开发过程中很多的问题都是集中在用户授权这个阶段,我开发的第三方应用,使用的是OAuth授权,关于OAuth授权的流程在新浪微博开放平台里有很清晰完整的介绍,我们可以到http://open.weibo.com/wiki/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 , 'http://localhost/callback.php');

 

  得到未授权的Request Token值后,我们就利用上面的代码可以开始准备去新浪微博授权页面进行授权,$aurl就是授权链接页面,我们得到$aurl后就可以利用 header()直接跳转到该授权页面,然后用户输入新浪微博帐号和密码进行授权,授权完成后,自动跳回你在最后一个参数里面设置的回调页面:http://localhost/callback.php,该链接你可以设置为上一个页面,这样授权完成之后就会自动又跳转回去了。

  需要注意的是设置session的keys的值是必须的,它在下面获取到授权的Access Token中是需要用到的。很多的朋友可能会参考其开放平台上面的说明来进行授权时,可发现总是出错,一般都是这个问题,你并未设置session的 keys值,在下面当然取不到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'] ) ;
echo($last_key['oauth_token']);

 

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

  授权完成后的工作

  在授权完成之后,我们就可以开始调用新浪微博提供的各类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 "Error occured";
 return false;
}
if (isset($msg['error_code']) && isset($msg['error'])){
 echo ('Error_code: '.$msg['error_code'].';  Error: '.$msg['error'] );
 return false;
}
print_r($msg);

 

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

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

  来源:红心草博客

  原文地址:http://www.hongxincao.com/archives/579.html

时间: 2024-10-24 08:06:37

新浪微博API开发简介之PHP基础篇-用户授权的相关文章

新浪微博API开发简介之用户授权(PHP基础篇)_php实例

现在玩微博的人越来越多了,而关于微博的第三方应用开发也越来越多,自己在偶然间开始接触了新浪微博API开发,新浪微博API开发的资源比较多,新浪微博提供了一个开发者的平台,网址是:http://open.weibo.com,它里面有很全面的新浪微博开发的资料,包括开发者的使用和介绍,各种语言的API函数介绍文档,SDK等多种资料. 自己在开发和学习的过程中,感觉虽然没有太大难度,但还是有一些问题是需要我们注意的,今天就我在开发和学习的过程中,简单的对利用PHP进行新浪微博API开发的内容进行一个整

Java使用新浪微博API开发微博应用的基本方法_java

新浪微博API现在运用比较广泛,做一个完整的开发流程Demo 1.第一步注册,就不多说了,注册帐号以及成为开发者帐号,这步操作不会的话请你马上砸掉电脑拔掉网线回家种田. 2.第二步创建应用,开发者帐号创建好了,打开新浪微博开发平台: http://open.weibo.com    上面菜单栏点击最后一个 管理中心 如果是web的应用的话选择创建网站接入的应用,然后根据新浪微博的要求balabalabala自己去搞定   应用创建完毕.点击应用跳转页面,点击查看应用参数,可以看到应用的相关参数,

Unity3d 开发-基础篇

最近转向U3D开发,在公司内部范围内做的U3D开发讲座的基础篇,放在这里和大家分享,以备以后自己查询 这些是能让程序和美术形成战斗力的最基本的概念,高级话题会在后面补上     1(编辑器基本概念与工作流程) 点击打开链接   2(摄像机 灯光 地形 模型和材质) 点击打开链接   3(light mapping 角色动作系统 粒子系统) 点击打开链接   4(animation 寻路 物理 布料) 点击打开链接   5(音效 光晕 GUI 发布与调试) 点击打开链接        

求Xamarin.Forms开发实战基础篇

问题描述 Xamarin.Forms开发实战基础篇Xamarin.Forms开发实战基础篇Xamarin.Forms开发实战基础篇Xamarin.Forms开发实战基础篇介绍:本教程是国内第一本Xamarin.Forms开发专向教程.本教程针对Xamarin.Forms初学用户,全面细致的讲解Xmarin.Forms开发的各项基础知识.为了方便用户理解,每个知识点都配以完整实例.试读地址:链接:http://pan.baidu.com/s/1hqSOLaW 解决方案 解决方案二:为什么打不开

《STM32库开发实战指南:基于STM32F103(第2版)》——第1部分基础篇

第一部分基 础 篇基础篇可以帮助初学者快速掌握STM32开发技术,写出自己的应用程序.其中包含如何搭建开发环境,如何使用寄存器.固件库点亮LED,如何使用STM32主要片上外设,并介绍常用的USART.I2C和SPI通信协议,以及如何使用EEPROM.Flash等存储器存储数据.以点亮LED灯的教程为例,从原始的寄存器操作入手,逐渐搭建库函数雏形.从软件工程的角度深入剖析什么是固件库,为什么使用固件库和怎样使用固件库:从STM32新建工程.编译下载程序出发,介绍如何操作GPIO,让新手由浅入深,

使用Xamarin开发即时通信系统 -- 基础篇(大量图文讲解 step by step,附源码下载)

      如果是.NET开发人员,想学习手机应用开发(Android和iOS),Xamarin 无疑是最好的选择,编写一次,即可发布到Android和iOS平台,真是利器中的利器啊!而且,Xamarin已经被微软收购并被大力推广,.NET开发人员将时间投资在Xamarin上,以应对移动开发的热潮,应该是值得的.       好了,废话不多说,就开始吧.本系列文章将详细介绍如何使用Xamarin开发出一个移动端的即时通信系统(手机聊天程序)(文末有源码下载,可先睹为快),本文作为第一篇基础篇,将

JAVA程序员必读:基础篇(1)

程序|程序员 JAVA程序员必读:基础篇 时间:2001/09/13 13:31 作者:ZSC 太平洋网络学院 JAVA是有SUN公司开发的新一代编程语言,它可以用在各种不同的机器.操作系统的网络环境中进行开发.不论你使用哪种浏览器或者使用哪种操作系统(Windows.Unix等等),只要浏览器支持JAVA,你就可以看到生动的主页.JAVA正在逐步成为Internet应用的主要开发语言,它彻底改变了应用软件的开发模式,为迅速发展的信息世界增添了新的活力.所以作为Internet应用的开发技术人员

C#调用Google Earth Com API开发(四)

本篇继续介绍Google Earth COM API开发的基础知识,相对第三篇的改进如下: 1)增加鼠标滚轮支持,可以实现放大.缩小.此功能利用上一篇提供的HookAPI.dll实现 2)读取PlaceMarks(Google Earth界面中的位置)并显示.隐藏 3)读取所有图层,显示并隐藏 下面,继续放代码: 1.鼠标滚轮事件,实现放大.缩小 1: ... 2: // 放大 3: private const long ZoomIn = 0x00780000; 4: // 缩小 5: priv

C#调用Google Earth Com API开发(二)

继<C#调用GoogleEarth Com API开发(一)>,我Neil又带给大家第二篇文章.这一篇文章在第一篇 的基础上,展示如何调用Windows API将GoogleEarth的界面隐藏掉,并将GoogleEarth的地图显示在自定 义的窗体上.废话少说,直接上代码. 1.主窗口代码: 1: // 功能:GE实例(二) 2: // 描述:GE COM API 网址:http://earth.google.com/comapi/index.html 3: // 作者:温伟鹏 4: //