使用OAuth2.0調用API
使用OAuth2.0調用API接口有兩種方式:
1、 直接使用參數,傳遞參數名為 access_token
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文本。例如:
|
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相關問題
