豆瓣支持OAuth2.0协议的授权访问。关于OAuth2.0协议规范,请参考这里。
使用OAuth2.0的流程可以简单概括为:
1.应用向豆瓣请求授权
2.豆瓣为用户显示一个授权页面,用户在此页面确认是否同意应用的请求
3.如果用户同意授权,应用会获取到一个访问令牌(access_token),
通过此令牌,应用可以访问授权用户的数据。
4.如果访问需要授权的Api,请使用https协议,加上access_token的Header,
具体见获取access_token
豆瓣支持三种OAuth2.0的授权流程:
■服务器的WEB应用的授权流程(server-side flow)
■桌面客户端应用、移动客户端应用的授权流程(native-application flow)
■直接在浏览器中运行的Javascript应用的授权流程(user-agent flow)
API Key 0f192c42cfdd96e22d4b84c86f98c4a6
Secret af3404eb0d991922
我们经常看到在别的网站用QQ登陆,其实是因为QQ提供了接口,
首先在豆瓣上申请一个KEY,
https://www.douban.com/service/auth2/auth?client_id=0f192c42cfdd96e22d4b84c86f98c4a6&redirect_uri=https://www.douban.com/&response_type=code&scope=shuo_basic_r,shuo_basic_w
当用户点击用这个登陆的时间会出现要用户输入账号密码的界面,
然后点击授权,授权成功,http://www.douban.com/?code=87af16aff6cf97b4
第一步,完成,我们得到了authorization_code。
如果点击取消,则跳转到redirect_uri界面。
然后我们有了它的那个code,以post方式提交这个URL。
https://www.douban.com/service/auth2/token?client_id=0f192c42cfdd96e22d4b84c86f98c4a6&client_secret=af3404eb0d991922&redirect_uri=http://www.baidu.com/&grant_type=authorization_code&code=87af16aff6cf97b4
获取的内容为:
{"access_token":"fc0958f0e40f991cf41c0ad2ac2ecb54","douban_user_id":"67439121","expires_in":604800,"refresh_token":"9389bdfcfd9fb59aba9d39f6f8df20ce"}
所以,这个网站就可以拿它的ID进行登陆。
*******************************
客户端通过接口访问服务器的数据
1,url
2,url获取一个urlconnection;
3,获取到服务器返回回来的具体信息
4,解析我们关心的内容
5,显示界面
https://api.douban.com/v2/book/1003078这个就是豆瓣提供的API.
我们在登陆的时间,如果登陆成功后,把它的accesstoken和tokensecret
存储进去,然后在BaseAcitvity里面根据这所有的信息得到一个doubanservice
之后 所有的操作,都是拿它来操作。