新浪微博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']);
我们需要在新浪微博开放平台中注册一个帐号,或直接使用我们的新浪微博帐号登录,进入我的应用,然后按照提示创建属于我们自己的第三方应用,创建完成之后我们可以得到两个授权的AppKey和App Secret值,这两个值就是我们开发应用的关键。
  得到授权值后,我们就可以利用上面的代码获得未授权的Request Token值了,它们会保存在$key数组变量中。
  2.然后请求用户授权Token
$_SESSION['keys'] = $keys; $aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , 'http://localhost/callback.php');
得到未授权的RequestToken值后,我们就利用上面的代码可以开始准备去新浪微博授权页面进行授权,$aurl就是授权链接页面,我们得到$aurl后就可以利用header()直接跳转到该授权页面,然后用户输入新浪微博帐号和密码进行授权,授权完成后,自动跳回你在最后一个参数里面设置的回调页面:http://localhost/callback.php,该链接你可以设置为上一个页面,这样授权完成之后就会自动又跳转回去了。
  需要注意的是设置session的keys的值是必须的,它在下面获取到授权的AccessToken中是需要用到的。很多的朋友可能会参考其开放平台上面的说明来进行授权时,可发现总是出错,一般都是这个问题,你并未设置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']);
上面的代码就最终获得了用户授权的AccessToken,共两个值,它们保存在$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);


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

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

本文出自:PHP开发者联盟 http://www.hbcsdn.tk

原文链接:http://www.hbcsdn.tk/forum.php?mod=viewthread&tid=63&extra=page%3D1


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微擎是一款基于PHP的开源微信公众号管理系统,可以帮助开发者快速搭建微信公众号应用。本将介绍微擎开发基础知识,包括环境搭建、目录结构、配置文件、路由规则、模块开发等内容。 ### 环境搭建 微擎的开发需要先搭建好开发环境,包括PHP、MySQL、Apache或Nginx等。具体步骤可以参考微擎的官方文档,建议使用PHP7及以上版本。 ### 目录结构 微擎的目录结构如下: ``` addons/ // 存放插件 api/ // 存放接口文件 app/ // 存放前台模块 attachment/ // 存放上传的文件 framework/ // 存放框架核心文件 payment/ // 存放支付相关文件 static/ // 存放静态资源文件 template/ // 存放前台模板文件 upgrade/ // 存放升级相关文件 wap/ // 存放手机端模块 we7/ // 微擎的核心目录 favicon.ico // 网站图标 index.php // 入口文件 ``` ### 配置文件 微擎的配置文件主要有两个:config.php和database.php,前者用于配置微擎的基础信息,后者用于配置数据库连接信息。 config.php的配置项包括: - `setting`:微擎基础设置,如网站名称、网站域名、微信公众号AppID等; - `site`:网站设置,如首页模板、错误页面模板、静态资源路径等; - `wxapp`:小程序设置,如小程序名称、小程序AppID、小程序Secret等; - `oauth`:公众号设置,如公众号AppID、公众号Secret等; - `remote`:远程附件设置,如附件存储方式、FTP信息等; - `app`:应用设置,如开启模块、插件管理等; - `global`:全局设置,如错误处理方式、调试模式等。 database.php的配置项包括: - `master`:主数据库连接信息,如数据库类型、主机地址、数据库用户名、密码等; - `slave`:从数据库连接信息,可选; - `tablepre`:数据表前缀。 ### 路由规则 微擎的路由规则遵循MVC模式,每个请求都会依据路由规则被分配到相应的控制器和方法中。微擎的路由规则主要有两种: - URL规则:URL规则是通过URL中的参数来确定控制器和方法的,如`index.php?c=site&a=entry&m=my_module&do=my_page`; - Rewrite规则:Rewrite规则通过修改服务器配置文件,将URL中的参数转换为美观的URL,如`/my_module/my_page`。 ### 模块开发 微擎的模块开发主要包括前台模块和后台模块两种。前台模块用于展示内容,后台模块用于管理内容。 模块的目录结构如下: ``` my_module/ ├── controller/ │ ├── index.php │ └── my_page.php ├── model/ │ └── my_page.php ├── template/ │ ├── index.html │ └── my_page.html ├── module.php └── version.php ``` 其中,controller目录存放控制器文件,model目录存放模型文件,template目录存放模板文件,module.php是模块的基本信息,version.php是模块的版本信息。 控制器文件中定义了控制器和方法,模型文件中定义了数据操作方法,模板文件中定义了页面布局和样式。模块的基本信息包括模块名称、模块描述、模块图标等,版本信息包括版本号、升级文件等。 ### 小结 本介绍了微擎开发基础知识,包括环境搭建、目录结构、配置文件、路由规则、模块开发等内容。掌握这些知识是进行微擎开发基础,希望可以帮助到初学者。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值