30天 | |
註:
- 1、只有未過審核的應用才處於測試層級。
- 2、應用程式所屬開發者授權應用程式時,有效期限為5年。
你可以在 「我的應用程式>介面管理>授權機制」 上查詢目前應用的授權等級。也可以在這裡申請提高授權有效期限。
開發者可以透過兩種方式計算access_token的實效時間:
- 1、使用者授權時,oauth2/access_token介面傳回的expires_in值就是access_token的生命週期;
- 2、從上述對應表中,找到應用程式所對應的授權有效期,過期時間= 使用者授權時間授權有效期限;
第三方開發應用程式需要具備一定的健全性,呼叫介面時判斷介面的回傳值,如果使用者的access_token失效,需要引導使用者重新授權。
失效原因有以下幾個:
- 1、使用者取消了對應用程式的授權;
- 2、access_token自然過期;
- 3、使用者修改了密碼,凍結了對應用程式的授權;
- 4、微博發現使用者帳號被盜,凍結了使用者對應用程式的授權;
授權有效期限的延續
授權有效期限內重新授權
如果使用者在授權有效期限內重新開啟授權頁授權(如果此時使用者有微博登入狀態,這個頁面將一閃而過),那麼微博會為開發者自動延長access_token的生命週期,請開發者維護新授權後得access_token值。
透過Refresh Token刷新授權有效期限
除此之外,我們也提供了透過Refresh Token 刷新的方式來延續授權有效期,但需要注意的是:只有使用微博官方行動SDK的行動應用,才可以從SDK的方法中取得到Refresh Token。
Refresh Token 是 Access Grants 的一種,在取得 Access Token 時,認證伺服器會傳回對應的 Refresh Token,如果 Access Token 過期,就可以用 Refresh Token 去刷新。
Refresh Token 也是有有效期限的,Refresh Token 的有效期限目前為30天,在有效期限內隨時可以刷新。
透過 Refresh Token 刷新得到的新的 Access Token ,其有效期等同於原來的有效期,即原來 Access Token 的有效期是30天,則新獲得的也是30天。
簡單來說就是對於使用了微博移動SDK的行動應用,授權(Access Token)30天有效,30天內可續,從刷新時間點算起重新得到30天有效期。
#1、當你是使用微博官方行動SDK的行動應用程式時,授權回傳access_token的同時,還會多回傳一個refresh_token:
JSON
{
"access_token": "SlAV32hkKG",
"remind_in": 3600,
"expires_in": 3600
"refresh_token": "QXBK19xm62"
}
2、当你调
#用API介面傳回Access Token過期時,你可以呼叫oauth2/access_token 並傳入refresh_token:
URL
##JSON
{ "access_token": "SlAV32hkKG",
"expires_in": 3600
使用OAuth2.0呼叫API介面有兩種方式:
##1、直接使用參數,傳遞參數名稱為access_token
URL
#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
##OAuth2.錯誤#回應中的錯誤碼定義如下表所示:
##############################################
######