如何获取OAuth2.0 Access Token(新浪微博)

来源:互联网 发布:2016dnf进去就网络中断 编辑:程序博客网 时间:2024/04/28 00:25

OAuth2.0是从2006年开始设计OAuth协议的下一个版本,OAuth2.0同时提供Web,桌面和移动应用程序的支持,并较1.0相比整个授权验证流程更简单更安全。也是新浪微博开放平台未来最主要的用户身份验证和授权方式。

开发者需要根据不同的应用场景,选择适用的OAuth授权流程:
微博登录或者站外Web应用,请参考:Web应用的验证授权(Authorization Code)
桌面和无线客户端应用,请参考:客户端的验证授权(Resource Owner Password Credentials)
Javascript类应用,请参考:Javascript Client的验证授权(Implicit Grant)
微博站内应用

在下载的Java SDK包中的实例Auth4Code用的就是Web应用的验证授权(Authorization Code),其基本流程如下所示:
Web应用的验证授权(Authorization Code)流程图

在获取Access Token之前,首先需要先获取App Key和App Secret,然后修改Auth4Code中部分代码:
postMethod.addParameter(“client_id”, “”); //appkey 注明:必填
postMethod.addParameter(“redirect_uri”,”"); //oauth2 回调地址 注明:这里可以留空
postMethod.addParameter(“userId”, “”); //微博帐号 注明:必填
postMethod.addParameter(“passwd”, “”); //帐号密码 注明:必填
注明:上面的微博账号和密码,我用的是测试号,可通过【我的应用】-【编辑信息】,填写测试号,最多是15个,添加后不可以删除(找不到删除功能)。

tokenMethod.addParameter(“client_id”, “”); //appkey 注明:必填
tokenMethod.addParameter(“client_secret”, “”); //appsecret 注明:必填
tokenMethod.addParameter(“redirect_uri”,”"); //回调地址 注明:这里可以留空

执行该程序,后台打印如下信息:
0 WARN [2011-10-28 09:27:52] SimpleHttpConnectionManager being used incorrectly. Be sure that HttpMethod.releaseConnection() is always called and that only one thread and/or method is using this connection manager at a time.
main—>{“access_token”:”8cd5211ca2312ae42910f642fc5d2d63″,”expires_in”:86400}

之后您就可以使用上面的access_token调用SDK中的API。