现在玩微博的人越来越多了,而关于微博的第三方应用开发也越来越多,自己在偶然间开始接触了新浪微博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数组格式了。

来源:红心草博客

新浪微博开发平台基于php的sdk包(包含demo程序),新浪微博API开发简介之用户授权(PHP基础篇)...相关推荐

  1. 新浪微博开发平台基于php的sdk包(包含demo程序),新浪微博API开发教程(一)-体验篇...

    现在新浪微博开放平台(http://open.weibo.com)非常火啊,所以...,你懂的! 首先,想要开发新浪微博API,你就必须获取APP KEY和APP SECRET,我毫不犹豫的就用新浪微 ...

  2. EasyCVR平台基于萤石云SDK接入的设备播放流程及接口调用

    EasyCVR视频融合云服务支持海量视频汇聚与管理.处理与分发.智能分析等视频能力,在功能上,可支持视频监控直播.云端录像.云存储.录像检索与回看.智能告警.平台级联.服务器集群等.EasyCVR平台 ...

  3. 自己手动导入的sdk包,提示程序包不存在,找不到符号(备忘)

    自己手动导入的sdk包,提示程序包不存在,找不到符号(备忘) 自己手动导入的sdk包,但是打包的时候却提示程序包不存在 自己手动导入的sdk包,确实已经导入进入了,写代码的时候import也没有红色的 ...

  4. 钉钉api 获取 accesstoken_钉钉开放平台第三方 Python SDK,快速实现钉钉API开发

    dingtalk-sdk 是一个钉钉开放平台的第三方 Python SDK, 实现了 企业内部开发 和 应用服务商(ISV)的 API. 企业内部开发 建议在使用前先阅读 钉钉开放平台文档 消息实体 ...

  5. 微信小程序的socket.io即时通讯开发(基于E聊SDK)

    1.背景: 由于微信小程序需要开发轻量,跨平台,开发时间短等特点,许多公司将小程序作为了业务展示的第一个APP.E聊客户端核心SDK 通讯部分已适配了微信小程序平台,下面分享一下适配过程中的思路与方法 ...

  6. 【微信开发】基于微信公众号的早起签到程序

    说明:本文讲述基于公众号实现的签到程序的全部开发过程.开发环境:PHP+MySQL. 源码下载地址:敬请期待 关注微信公众号[知行校园汇]可免费下载全部源码. >>点击查看WUTer计算机 ...

  7. 钉钉开发平台 —H5微应用-- 扫条形码、二维码 api 示例

    扫条形码.二维码 使用说明 客户端 Android iOS PC 支持说明 支持 支持 不支持 dd.biz.util.scan({type: String , // type 为 all.qrCod ...

  8. 最新开源微信小程序一键开发平台源码 支持15大功能模块+完整前后端+搭建教程

    分享一个开源微信小程序一键开发综合平台源码,系统支持15大小程序功能模块,涉及各行各业,含完整前后端+详细搭建部署教程. 系统特色功能一览: 1.全新重构升级功能后端文件和前端文件: 2.整套源码已经 ...

  9. 微信小程序-常用API开发技巧学习笔记

    常用API开发技巧学习笔记 第一章 认识微信小程序 前后端分离的开发方式 小程序的特点 小程序对开发者的影响 学习小程序需要的基础 第二章 小程序环境搭建与开发工具介绍 小程序开发环境 没有小程序号对 ...

最新文章

  1. select sqlite 唯一_SQLite中的SELECT子句使用通配符
  2. 阿里云配置tornado无法访问
  3. oracle之 Oracle归档日志管理
  4. JDBC 提示:WARN: Establishing SSL connection without server's identity verification is not recommended.
  5. python 把多个list合并为一个并去重内容_110道Python面试题(上)
  6. .net 根据模板创建html文件
  7. Xshell 4使用
  8. 时间序列分析的模型应用 – 股价预测
  9. 如何在页面上预览word
  10. Oracle ERP 仓库(inventory) 词汇
  11. C语言---编译器、编辑器
  12. 图片转换成文字的在线转换方法
  13. wap实现手机充话费
  14. 造轮子之 npm i -g creatshare-app-init 源码浅析
  15. mysql压缩包安装设置密码
  16. 基于JavaWeb的网上书店的设计与实现
  17. php对字符串进行加密、解密
  18. 【附源码】Java计算机毕业设计安卓移动LYQ电子商城APP(程序+LW+部署)
  19. 高功率DC-DC4.5V-18V同步降压转换器18V600kHz2A输出电流参考资料
  20. $(window).load(function(){})和.onload区别

热门文章

  1. php日期函数 英文日期,PHP 日期与时间函数
  2. CentOS Linux
  3. 阿里云验证SSL证书
  4. opengl之triangel
  5. 用OneKey.exe快速还原Ghost系统
  6. Linux防火墙添加白名单
  7. HDU 3791 二叉搜索树 (bst)
  8. 起底勒索软件Trigona:扮猪吃老虎,闷声发大财
  9. App优化(六)网络优化
  10. SDUT 2562 相似三角形 JAVA