专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 移动开发

关于新浪微博与腾讯微博从Oauth1.0升级到Oauth2.0的历程

发布时间:2010-05-30 05:31:14 文章来源:www.iduyao.cn 采编人员:星星草
关于新浪微博与腾讯微博从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

新浪的这份授权机制还是比较详细。理解起来比较容易

接口 说明
OAuth2/authorize 请求用户授权Token
OAuth2/access_token 获取授权过的Access Token
OAuth2/get_oauth2_token  OAuth1.0的Access Token更换至OAuth2.0的Access Token

  步骤1http://open.weibo.com/wiki/Oauth2/authorize

获取code

请求参数

  必选 类型及范围 说明
client_id true string 申请应用时分配的AppKey。
redirect_uri true string 授权回调地址,站外应用需与设置的回调地址一致,站内应用需填写canvas page的地址。
response_type false string 返回类型,支持code、token,默认值为code。
state false string 用于保持请求和回调的状态,在回调时,会在Query Parameter中回传该参数。
display false string 授权页面的终端类型,取值见下面的说明。


https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI

值得注意的是这边的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传给服务器将返回

 {
       "access_token": "ACCESS_TOKEN",
       "expires_in": 1234,
       "remind_in":"798114",
       "uid":"12341234"
 }

这些数据都是要做数据持久化管理的。
腾讯微博返回稍有不同,但是并不影响

步骤3
访问API



研究中遇到的一些问题
1.腾讯微博    那群脑残的腾讯微博把appke和secret变成  ClientID和ClientSecret

oAuth.setClientId(StatcParame.T_CONSUMER_KEY);
oAuth.setClientSecret(StatcParame.T_CONSUMER_SECRET);

下面直接贴源码了

1
sina
webview承载授权页面的设置

这个方法集合了sina和tencent的处理

这步走完就拿到ACCESSTOKEN了


下面贴个发布微博的方法


SINA发送一个带图片的微博



TENCent发送一条微博



源码之后上传。

联系 zhangnianxiang@gmail.com


友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: