关于新浪微博与腾讯微博从Oauth1.0升级到Oauth2.0的过程
新浪微博
曾经@微博API 新浪那边表示 旧版的Oauth 1.0a将在不久的2012.9.1号停止。这个是一个很苦逼的消息。意味着涉及微博的都要修改。
Oauth2.0相比较于Oauth1.0的话 流程少了很多,其中一点就是签名。之前都是用signpost这个开源项目辅助。现在完全可以去掉了
好吧。废话不说了。
新浪微博Oauth2.0认证的官方说明
http://open.weibo.com/wiki/Oauth2
简单步骤:1获取code 2获取accessToken 3使用accessToken访问api
新浪的这份授权机制还是比较详细。理解起来比较容易
步骤1http://open.weibo.com/wiki/Oauth2/authorize
获取code
请求参数 必选 类型及范围 说明 client_idtruestring申请应用时分配的AppKey。redirect_uritruestring授权回调地址,站外应用需与设置的回调地址一致,站内应用需填写canvas page的地址。response_typefalsestring返回类型,支持code、token,默认值为code。statefalsestring用于保持请求和回调的状态,在回调时,会在Query Parameter中回传该参数。displayfalsestring授权页面的终端类型,取值见下面的说明。
- 值得注意的是这边的redirect_uri 必须与 申请的应用那边设置(高级设置里面)的回调地址一致。否则就会出现 error:redirect_uri_mismatch.
- 这是网页载入授权界面,用户填完账号密码之后按下确定
- 服务器将返回一个“回调地址+code=xxxxx”的URL(如果是腾讯微博还有openid和openkey等等)
- 把code是步骤2的关键
- 步骤2
- 获取accessToken
- API https://api.weibo.com/oauth2/access_token
- 将code等参数 以POST传给服务器将返回
- 这些数据都是要做数据持久化管理的。
- 腾讯微博返回稍有不同,但是并不影响
- 步骤3
- 访问API
- 研究中遇到的一些问题
- 1.腾讯微博 那群脑残的腾讯微博把appke和secret变成 ClientID和ClientSecret
- oAuth.setClientId(StatcParame.T_CONSUMER_KEY);
oAuth.setClientSecret(StatcParame.T_CONSUMER_SECRET);- 下面直接贴源码了
- 1
- sina
- webview承载授权页面的设置
源码之后上传。
联系 zhangnianxiang@gmail.com
- 值得注意的是这边的redirect_uri 必须与 申请的应用那边设置(高级设置里面)的回调地址一致。否则就会出现 error:redirect_uri_mismatch.