Douban openplatform-use-oauth2.0

8
使用OAuth2.0访问豆瓣API Contents 1. 使用OAuth2.0访问豆瓣API 2. 授权流程 1. user-agent flow 2. server-side flow 与 native-application flow 3. access_token有效期 与 refresh_token 4. 基于密码的高级授权方式 5. 访问速度控制 6. 错误代码 豆瓣支持OAuth2.0协议的授权访问。关于OAuth2.0协议规范,请参考这里使用OAuth2.0的流程可以简单概括为: 1. 应用向豆瓣请求授权 2. 豆瓣为用户显示一个授权页面,用户在此页面确认是否同意应用的请求 3. 如果用户同意授权,应用会获取到一个访问令牌(access_token),通过此令 牌,应用可以访问授权用户的数据。 豆瓣支持三种OAuth2.0的授权流程: 直接在浏览器中运行的Javascript应用的授权流程(user-agent flow) 有服务器的WEB应用的授权流程(server-side flow) 桌面客户端应用、移动客户端应用的授权流程(native-application flow) 授权流程 user-agent flow 获取access_token 通过在浏览器中访问下面的地址,来引导用户授权,并获得access_token https://www.douban.com/service/auth2/auth 参数: 参数名称 参数说明 client_id 必选参数,应用的唯一标识,对应于APIKey

description

use oauth2.0 access douban APIs

Transcript of Douban openplatform-use-oauth2.0

  • 1. OAuth2.0APIContents 1. OAuth2.0API 2. 1. user-agent flow 2. server-side flow native-application flow 3. access_token refresh_token 4. 5. 6. OAuth2.0OAuth2.0OAuth2.01. 2. 3. (access_token) OAuth2.0 Javascriptuser-agent flow WEBserver-side flow native-application flowuser-agent flowaccess_tokenaccess_tokenhttps://www.douban.com/service/auth2/auth client_id APIKey

2. redirect_uri code token response_type tokenscopescopescopestate HTTP GETrefresh_tokenhttps://www.douban.com/service/auth2/auth? client_id=0b5405e19c58e4cc21fc11a4d50aae64& redirect_uri=https://www.example.com/back& response_type=token& scope=shuo_basic_r,shuo_basic_w redirect_urihttps://www.example.com/back?error=access_denied redirect_uriaccess_tokenhttps://www.example.com/back#access_token=a14afef0f66fcffce3e0fcd2e34f6ff4&expires_in=3600access_tokencurl "https://api.douban.com/people/@me"-H "Authorization: Bearer a14afef0f66fcffce3e0fcd2e34f6ff4"server-side flow native-application flowaccess_tokenauthorization_codeauthorization_codehttps://www.douban.com/service/auth2/auth 3. client_idAPIKey redirect_uri code token response_type code scopescopescope stateHTTP GEThttps://www.douban.com/service/auth2/auth? client_id=0b5405e19c58e4cc21fc11a4d50aae64& redirect_uri=https://www.example.com/back& response_type=code& scope=shuo_basic_r,shuo_basic_w redirect_urihttps://www.example.com/back?error=access_denied redirect_uri autorization_codehttps://www.example.com/back?code=9b73a4248access_tokenhttps://www.douban.com/service/auth2/token client_idAPIKey client_secretAPIKey 4. redirect_uri authorization_code grant_typerefresh_token password authorization_code codeauthorization_codeHTTP POSThttps://www.douban.com/service/auth2/token? client_id=0b5405e19c58e4cc21fc11a4d50aae64& client_secret=edfc4e395ef93375& redirect_uri=https://www.example.com/back& grant_type=authorization_code& code=9b73a4248 Toggle line numbers1{2 "access_token":"a14afef0f66fcffce3e0fcd2e34f6ff4",3 "expires_in":3920,4 "refresh_token":"5d633d136b6d56a41829b73a424803ec",5 "douban_user_id":"1221"6}access_tokencurl "https://api.douban.com/people/@me"-H "Authorization: Bearer a14afef0f66fcffce3e0fcd2e34f6ff4"access_token refresh_tokenOAuth2.0access_tokenaccess_tokenexpires_inaccess_token106access_token_has_expired access_tokenaccess_tokenrefresh_tokenaccess_tokenrefresh_token refresh_tokenrefresh_tokenrefresh_tokenaccess_token 5. https://www.douban.com/service/auth2/token client_idAPIKey client_secretAPIKey redirect_uri authorization_code grant_type refresh_token password refresh_token refresh_tokenHTTP POSTrefresh_tokenaccess_tokenaccess_tokenrefresh_tokenaccess_tokenhttps://www.douban.com/service/auth2/token? client_id=0b5405e19c58e4cc21fc11a4d50aae64& client_secret=edfc4e395ef93375& redirect_uri=https://www.example.com/back& grant_type=refresh_token& refresh_token=5d633d136b6d56a41829b73a424803ec Toggle line numbers1{2 "access_token":"0e63c03dfb66c4172b2b40b9f2344c45",3 "expires_in":3920,4 "refresh_token":"84406d40cc58e0ae8cc147c2650aa20a",5 "douban_user_id":"1000"6} access_token refresh_token L11refresh_token L230 refresh_token L330 60https://api.douban.com/auth2/token 6. client_idAPIKey client_secretAPIKey redirect_uri authorization_code grant_type refresh_token password password username password HTTP POSThttps://www.douban.com/service/auth2/token? client_id=2342hljkhafh323& client_secret=2342hljkhafh323& redirect_uri=https://www.example.com/back& grant_type=password& [email protected]& password=mypassword Toggle line numbers1{2 "access_token":"1/fFAGRNJru1FTz70BzhT3Zg",3 "expires_in":3920,4 "refresh_token":"1/6BMfW9j53gdGImsixUH6kU5RsR4zwI9lUVX-tqf8JXQ",5 "douban_user_id":"1000"6}IPscopeIP: L15000/ L210000/ L320000/ 7. scope L160/ L2150/ L3300/API Toggle line numbers1{2 "code":113,3 "msg":"required_parameter_is_missing: client_id",4 "request":"GET /shuo/statuses/232323"5} 100 invalid_request_scheme 101 invalid_request_method 102 access_token_is_missing access_token 103 invalid_access_token access_token 104 invalid_apikey apikey 105 apikey_is_blocked apikey 106 access_token_has_expired access_token 107 invalid_request_uri 108 invalid_credencial1 109 invalid_credencial2 apikey 110 not_trial_user 111 rate_limit_exceeded1 112 rate_limit_exceeded2 IP 113 required_parameter_is_missing 114 unsupported_grant_type grant_type 115 unsupported_response_type response_type 116 client_secret_mismatch client_secret 8. 117 redirect_uri_mismatch redirect_uri118 invalid_authorization_code authorization_code119 invalid_refresh_token refresh_token120 username_password_mismatch 121 invalid_user 122 user_has_blocked access_token_has_expired_since_password_changed 123access_token124 access_token_has_not_expired access_token999 unknown