OAuth2.0學習(5-4)新浪開放平臺-微博API-使用OAuth2.0調用API
使用OAuth2.0調用API
使用OAuth2.0調用API接口有兩種方式:
1、 直接使用參數,傳遞參數名為 access_token
URL1 |
https://api.weibo.com/2/statuses/public_timeline.json?access_token=abcd
|
2、在header裏傳遞,形式為在header裏添加 Authorization:OAuth2空格abcd,這裏的abcd假定為Access Token的值,其它接口參數正常傳遞即可。
註:所有的微博開放平臺接口都部署在weibo.com域下,僅有移動端的授權接口在open.weibo.cn域。
授權中的其他功能
Scope
Scope是OAuth2.0新版授權頁提供的一個功能,通過scope,平臺將開放更多的微博核心功能給開發者,同時也加強用戶隱私保護,提升了用戶體驗,用戶在新OAuth2.0授權頁中有權利選擇賦予應用的功能。
Scope開放的接口文檔:接口文檔
客戶端默認回調頁
通常Mobile Native App沒有服務器回調地址,您可以在應用控制臺授權回調頁處填寫平臺提供的默認回調頁,該頁面用戶不可見,僅用於獲取access token。
OAuth2.0客戶端默認回調頁:https://api.weibo.com/oauth2/default.html
強制登錄
授權頁會默認讀取當前用戶的微博登錄狀態,如果你想讓用戶重新登錄,請在調用authorize接口時傳入參數:forcelogin=true,默認不填寫此參數相當於forcelogin=false。
取消授權回調頁
開發者可以在應用控制臺填寫取消授權回調頁,當用戶取消你的應用授權時,開放平臺會回調你填寫的這個地址。並傳遞給你以下參數,source:應用appkey,uid :取消授權的用戶,auth_end :取消授權的時間
OAuth2.0相關資源
以下SDK包含了OAuth2.0及新版API接口
下載Android SDK | 下載iOS SDK | 下載WP7 SDK |
下載PHP SDK(由SAE維護) | 下載Java SDK | 下載Python SDK |
下載Flash SDK | 下載Javascript SDK | 下載C# SDK |
移動開發SDK說明文檔
Android SDK 說明文檔 | iOS SDK 說明文檔 | WP7 SDK 說明文檔 |
其他參考資料
OAuth是一種國際通用的授權方式, OAuth2.0的官方技術說明可參看 http://oauth.net/2/
如果你仍在使用Oauth1.0,請進入瀏覽相關文檔。
OAuth2.0 錯誤碼
微博OAuth2.0實現中,授權服務器在接收到驗證授權請求時,會按照OAuth2.0協議對本請求的請求頭部、請求參數進行檢驗,若請求不合法或驗證未通過,授權服務器會返回相應的錯誤信息,包含以下幾個參數:
- error: 錯誤碼
- error_code: 錯誤的內部編號
- error_description: 錯誤的描述信息
- error_url: 可讀的網頁URI,帶有關於錯誤的信息,用於為終端用戶提供與錯誤有關的額外信息。
錯誤信息的返回方式有兩種:
1. 當請求授權Endpoint:https://api.weibo.com/2/oauth2/authorize 時出現錯誤,返回方式是:跳轉到redirect_uri,並在uri 的query parameter中附帶錯誤的描述信息。
2. 當請求access token endpoing:https://api.weibo.com/oauth2/access_token 時出現錯誤,返回方式:返回JSON文本。例如:
JSON
1 2 3 4 5 |
{
"error" : "unsupported_response_type" ,
"error_code" : 21329,
"error_description" : "不支持的ResponseType."
}
|
OAuth2.0錯誤響應中的錯誤碼定義如下表所示:
錯誤碼(error) | 錯誤編號(error_code) | 錯誤描述(error_description) |
---|---|---|
redirect_uri_mismatch | 21322 | 重定向地址不匹配 |
invalid_request | 21323 | 請求不合法 |
invalid_client | 21324 | client_id或client_secret參數無效 |
invalid_grant | 21325 | 提供的Access Grant是無效的、過期的或已撤銷的 |
unauthorized_client | 21326 | 客戶端沒有權限 |
expired_token | 21327 | token過期 |
unsupported_grant_type | 21328 | 不支持的 GrantType |
unsupported_response_type | 21329 | 不支持的 ResponseType |
access_denied | 21330 | 用戶或授權服務器拒絕授予數據訪問權限 |
temporarily_unavailable | 21331 | 服務暫時無法訪問 |
appkey permission denied | 21337 | 應用權限不足 |
OAuth2.0相關問題,查看 OAuth2.0相關問題
OAuth2.0學習(5-4)新浪開放平臺-微博API-使用OAuth2.0調用API