1. 程式人生 > >OAuth2.0學習(5-4)新浪開放平臺-微博API-使用OAuth2.0調用API

OAuth2.0學習(5-4)新浪開放平臺-微博API-使用OAuth2.0調用API

ons ive cin span 其他 例如 bsp 檢驗 應用

使用OAuth2.0調用API

使用OAuth2.0調用API接口有兩種方式:

1、 直接使用參數,傳遞參數名為 access_token

URL
1 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