以获取微博用户最新微博列表数据为例,分3步:
1)请求授权页面,让用户填写账号和密码,从回调地址获取(authorization) code(跟唯一性和加密等有关)。
2)code作为参数之一,请求获取访问令牌接口,获取访问令牌(access token)。
3)使用访问令牌+其他参数请求微博列表接口。
Ps:微博API
1)请求授权页面:给指定应用授权
接口:http://open.weibo.com/wiki/Oauth2/authorize
参数:client_id和redirect_uri
1、client_id用于标识要给哪个应用授权,比如微博应用ShareSDK。
2、redirect_uri用于授权后拿到code的地址。
示例:
https://api.weibo.com/oauth2/authorize?client_id=2365000034&redirect_uri=http://www.baidu.com
(注意URL地址的变化)
用户填写账号和密码,点击登录
跳到授权页面
用户授权后,跳到回调地址,从回调地址获取code。http://www.baidu.com/?code=29d026348aaaa76e973e863867ed7831
2)用code获取access_token。
获取access_token的接口:http://open.weibo.com/wiki/OAuth2/access_token
参数:
client_id:申请应用时分配的AppKey。
client_secret:申请应用时分配的AppSecret。
grant_type:请求的类型,填写authorization_code。
code:调用authorize获得的code值。
redirect_uri:回调地址,需需与注册应用里的回调地址一致。
示例:
参数:
client_id=2365000034
client_secret=719841b31ddecc0345b5f115e41de7fa
grant_type=authorization_code
code=b09fb0dd403a581fe2765e0c2da011ea
redirect_uri=http://www.baidu.com
返回数据:
{“access_token":"2.00pXuWCCqXSDaC4474f52ba4gnTiIB","remind_in":"138474","expires_in":138474,"uid":"1869662193"}
拿到access_token:2.00pXuWCCqXSDaC4474f52ba4gnTiIB
3)获取用户最新微博列表数据:
接口:http://open.weibo.com/wiki/2/statuses/public_timeline
参数:
access_token:采用OAuth授权方式为必填参数,其他授权方式不需要此参数,OAuth授权后获得。
count(非必要):单页返回的记录条数,最大不超过200,默认为20。
关于Oauth2.0的注意事项:
1、未通过审核的应用不能给除开发者和测试用户以外的人授权,需要测试的账号需要到微博应用后台添加成为测试用户。
2、请求下来的access token是会过期的,一旦过期需要重新授权获取。使用ShareSDK的用户不用自已处理授权过期的问题,ShareSDK自动处理这些逻辑。