OAuth2.0學習(1-11)新浪開放平臺微博認證-使用OAuth2.0調用微博的開放API

使用OAuth2.0調用API

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

一、 直接使用參數,傳遞參數名爲 access_tokenhtml

URL

二、在header裏傳遞,形式爲在header裏添加 Authorization:OAuth2空格abcd,這裏的abcd假定爲Access Token的值,其它接口參數正常傳遞便可。android


注:全部的微博開放平臺接口都部署在weibo.com域下,僅有移動端的受權接口在open.weibo.cn域。ios

 

受權中的其餘功能

Scope

Scope是OAuth2.0新版受權頁提供的一個功能,經過scope,平臺將開放更多的微博核心功能給開發者,同時也增強用戶隱私保護,提高了用戶體驗,用戶在新OAuth2.0受權頁中有權利選擇賦予應用的功能。git


Scope開放的接口文檔:接口文檔github

 

客戶端默認回調頁

一般Mobile Native App沒有服務器回調地址,您能夠在應用控制檯受權回調頁處填寫平臺提供的默認回調頁,該頁面用戶不可見,僅用於獲取access token。json


OAuth2.0客戶端默認回調頁:https://api.weibo.com/oauth2/default.htmlapi

 

強制登陸

受權頁會默認讀取當前用戶的微博登陸狀態,若是你想讓用戶從新登陸,請在調用authorize接口時傳入參數:forcelogin=true,默認不填寫此參數至關於forcelogin=false。服務器

 

取消受權回調頁

開發者能夠在應用控制檯填寫取消受權回調頁,當用戶取消你的應用受權時,開放平臺會回調你填寫的這個地址。並傳遞給你如下參數,source:應用appkey,uid :取消受權的用戶,auth_end :取消受權的時間app

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相關問題

相關文章
相關標籤/搜索