微博开放平台
微连接
移动应用
网站接入
电商服务商
电商商家
数据服务
数据服务
合作伙伴
微博支付
轻应用
粉丝服务
文档
推广
我的应用
登录
weibo
开发文档
首页
平台政策与指引
概述
平台公约
新手指南
开发者协议
应用运营管理规范
微连接分级管理办法
应用审核产品指南
应用安全开发注意事项
平台应用设计规范
微服务接入指南
微博登录接入
用微博帐号登录
授权机制
移动应用接入
移动应用介绍
移动应用SSO授权
微博Deep Link
媒体接入平台
头条文章开放接口
视频上传开放接口
电商接入平台
电商服务商接入
电商商家端接入
电商平台能力接口
粉丝服务平台
粉丝服务平台
新手接入指南
微信开发者迁移指南
接收消息
发送消息
自定义菜单
用户管理
生成带参数的二维码
Fans Service Platform
商业接口
商业数据接入指南
订阅服务手册(中文版)
订阅服务手册(英文版)
商业接口-REST API
商业数据常见问题
网站接入
网站接入介绍
微博API
微博API
接口访问频次权限
资源下载
SDK
微博标识下载
常见问题
联系我们
工具箱
链入页面
链出更改
特殊页面
查看源代码
跳转到:
导航
,
搜索
根据下列原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
本文介绍使用PHP libweibo (http://code.google.com/p/libweibo/) 来进行OAuth验证及微博接口调用 =准备工作= 要使用微博开放平台之前,你必须拥有一个微博开放平台的帐号,可以到这里申请,http://t.sina.com.cn/11051/3f4cXR5Tej 申请通过后,微博开放平台会给你APP KEY(CONSUMER KEY)和CONSUMER SECRET. 只有拥有APP KEY和APP SECRET才能和微博平台进行交互 =了解OAuth= 微博开放平台支持两种认证方式,一种是需要用户输入用户名和密码的Basic验证,一种是不需要用户提供密码的OAuth.我们只提供OAuth方式的class. OAuth通过应用和微博授权页面之间的跳转来进行授权. 其步骤为 # 应用向微博平台发起请求,获得一个临时的oauth_token,和oauth_token_secret(A),这套key被称为request token. # 应用将用户转向到微博授权页面,同时带上这个token和一个回调页面地址 # 用户在微博上同意授权后,会生成oauth_verifier(B),并在转向到回调页面是带上这个值. # 应用通过$_REQUEST得到oauth_verifier,再加上之前(A)处的oauth_token和oauth_token_secret,向微博发起最后一次请求. # 微博平台验证无误后,发给应用另外一套oauth_token和oauth_token_secret(C),这套key被成为access token. # 拿到access token意味着应用已经获得了授权.之后应用就可以通过access token获取和发送微博了. access token不用每次都去取,可以把它保存下来,供下次使用.这样性能更高. = 使用libweibo = 由于微博接口属于SAE以外的服务,所以我们需要手工载入class,并初始化对象. include_once( 'saet.ex.class.php' ); $o = new SaeT( WB_AKEY , WB_SKEY ); // APP KEY和APP SECRET 然后进行上一段中的(1) $keys = $o->getRequestToken(); // 取得oauth_token 接着获得(2)中要用到的url,第三个参数指定了回调页面 $aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , 'http://'. $_SERVER['HTTP_APPNAME'] . '.sinaapp.com/callback.php'); 通过提示用户点击链接或者header(”Location:aulr”)等方式将页面转向. 用户被带到微博授权页面上,当他点击同意后,微博会将他转向到callback.php. 我们在callback.php里边继续. 因为是一个新的页面,需要重新载入class并初始化. include_once( 'saet.ex.class.php' ); $o = new SaeT( WB_AKEY , WB_SKEY , $_SESSION['keys']['oauth_token'] , $_SESSION['keys']['oauth_token_secret'] ); 注意这里new的时候多带了两个参数,是在(A)处获得的值.因为跨页面了,我们一般把它们存在Session里边. oauth_verifier就在callback接收到的$_REQUEST里边.这三个值准备好后,我们再请求最后一次认证. $last_key = $o->getAccessToken( $_REQUEST['oauth_verifier'] ) ; 这样我们就得到了(C)处的两个值.在它们过期之前(微博目前是永久的),我们都可以直接通过这两个值来和微博进行数据交换了. $o = new SaeT( WB_AKEY , WB_SKEY , $_SESSION['last_key']['oauth_token'] , $_SESSION['last_key']['oauth_token_secret'] ); // 取得用户的最近5条微博 $ms = $o->get("http://api.t.sina.com.cn/statuses/user_timeline.json?count=5"); // 发布微博 $o->post( "http://api.t.sina.com.cn/statuses/update.json" , array( 'status' => 'always test' ) ); libweibo 下载地址为 http://code.google.com/p/libweibo/
返回到
OAuthTutorial
。
反馈
分享
顶部