2014-10-01 132 views
12

我正在開發一個應用程序,其中需要訪問多個Google日曆。所有這些日曆都來自不同的用戶。現在我正在使用OAuth2進行同步。但據我瞭解,每個客戶端ID只能生成25個刷新令牌。Google API刷新令牌限制

Note: Save refresh tokens in secure long-term storage and continue to use 
them as long as they remain valid. Limits apply to the number of refresh 
tokens that are issued per client-user combination, and per user across all clients, 
and these limits are different. If your application requests enough refresh tokens 
to go over one of the limits, older refresh tokens stop working. 

建議,我在我的數據庫中保留刷新標記。但我的問題是,如果我得到更多想要同步日曆的客戶,該怎麼辦?有什麼方法可以忽略這個限制嗎?當然沒有。我現在想的只是創建更多的客戶端ID。有任何建議嗎?

回答

24

其每個用戶(客戶端用戶)的50個,與您客戶端的用戶一樣。不是client_id。對於驗證您的應用程序的每個人,您可以讓他們對其進行驗證達50次。您收到的每個刷新令牌都可以使用。 50日後,第一個將停止工作。他們也將工作長達6個月,我認爲,如果沒有使用6個月,它將被視爲無效。

您可以讓儘可能多的人使用您的客戶端(client_id),因爲他們願意認證您。你不會有任何問題。

從谷歌oauth2文檔中發現here

令牌到期

您必須編寫代碼來預測這種可能性,即授權令牌可能不再起作用。令牌可能因以下原因之一而停止工作:

•用戶已撤銷訪問權限。

•令牌尚未使用六個月。

•用戶更改密碼,令牌包含Gmail範圍

•用戶帳戶已經超過了一定數量的令牌請求。

目前每個客戶端每個用戶帳戶最多可以刷新50個令牌。如果達到限制,則創建新令牌會自動使最舊的令牌無效而不發出警告。此限制不適用於服務帳戶。

用戶帳戶或服務帳戶在所有客戶端可以擁有的令牌總數也有較大限制。大多數普通用戶不會超過此限制,但開發人員的測試帳戶可能會超出此限制

如果您需要授權多個程序,機器或設備,則一種解決方法是將您授權的每個用戶帳戶的客戶端數量限制爲15或20個。如果您是Google Apps管理員,則可以創建其他管理員用戶並使用它們授權某些客戶端。

問題:你在哪找到這個?我想將其報告給谷歌的有點混亂

注:保存在安全的長期存儲刷新令牌,繼續 只要他們仍然有效地使用它們。限制適用於每個用戶在所有客戶端上每客戶端用戶組合和 發出的 刷新令牌的數量,這些限制是不同的。如果您的 應用程序請求足夠的刷新令牌以超過 限制之一,則舊的刷新令牌停止工作。

+0

是。你是在哪裏找到那個東西的。我想將它報告給Google,讓人感到困惑。我剛剛通過更好的文檔資源鏈接進行了更新。 – DaImTo 2014-10-01 07:28:17

+0

對不起,我刪除了我以前的評論。無論如何,這裏是我閱讀它的地方https://developers.google.com/accounts/docs/OAuth2。 – user3360031 2014-10-01 07:31:14

+1

Wew。我終於可以繼續這個了。感謝@DalmTo澄清一切。 :) – user3360031 2014-10-01 07:33:06