如何使用豆瓣的OAuth 2.0授权机制调用广播API,将豆瓣伪装成Snapchat

1. OAuth 2.0 介绍

OAuth的作用是让客户端安全可控地获取用户授权,与服务提供商进行互动。豆瓣使用OAuth 2.0的授权流程为:

( 1 ) 应用( 第三方应用 )向豆瓣请求授权

e.g.

( 我在豆瓣上随便申请了一个应用,域名用的是localhost,竟然审核通过,下面用的都是是使用该应用的appid跟secret )

https://www.douban.com/service/auth2/auth?client_id=0fc08bb0c48db0f82f41...

浏览器访问上面链接,就会跳转到豆瓣的授权页面,来到第2步;

( 2 ) 豆瓣为用户显示一个授权页面,用户在此页面确认是否同意应用的请求




当用户拒绝授权时,浏览器会重定向到 redirect_uri,并附加错误信息;

http://localhost?error=access_denied

当用户同意授权时,浏览器会重定向到 redirect_uri,并附加 autorization_code;

http://localhost?code=9b73a4248

用户同意授权的情况下,第三方应用通过code参数,以HTTP POST方式,获取access_token



( 3 ) 如果用户同意授权,应用会获取到一个访问令牌(access_token),通过此令牌,应用可以访问授权用户的数据。

( 4 )  如果访问需要授权的 API,请使用 HTTPS 协议,加上 access_token 的 Header

2. 豆瓣广播API

    API 1 : 获取用户发布的广播列表

    API 2 : 删除一条广播



3. Snapchat 介绍

Snapchat是一款"阅后即焚"的应用。最主要的功能也就是发表的图片都会有一个生命期。百度百科说了,给年轻人互相发送不雅照片提供了安全平台。



4. 目标

用户发布一条广播后,设置一个时间用来设置这一条广播存留多长时间,然后时间到了自动删除,不用隔一段时间清理自己的广播数据。



5. 原理

使用OAuth 2.0 授权,然后通过豆瓣API删除授权用户的广播。至于如何设置广播存留时间,可以写一个Chrome Extension,将豆瓣广播id跟存留时间发送到第三方应用后台保存,然后在后台写一个脚本去判断广播是不是该删除了。这里应该要注意刷新access_token,因为一次获取之后会过期。



6. 伪代码

TBC