[英]How to refresh Token in GoogleCredential
我已經實現了從SharedPreferences中保存的令牌中檢索憑證的功能。
mCredential = new GoogleCredential.Builder()
.setClientSecrets(CLIENT_ID, CLIENT_SECRET)
.setJsonFactory(mJsonFactory)
.setTransport(mHttpTransport).build();
mCredential.setRefreshToken(accessRefreshTokenSave);
mCredential.setAccessToken(accessTokenSave);
Long expires = mCredential.getExpiresInSeconds();
boolean result = mCredential.refreshToken();
令牌過期時。 我們應該調用mCredential.refreshToken()刷新令牌,對嗎?
當我打電話給refreshToken時,我得到了例外。
com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request
{
"error" : "invalid_grant"
}
我應該怎么做才能刷新令牌? 我在使用OAuth 2.0中找到了一些有關刷新令牌的文檔。 但是我不知道如何在Android代碼中實現它? 是否有任何示例代碼?
通常,(根據我的經驗,因為我還沒有找到任何文檔,所以)“無效授權”表示您存儲的刷新令牌存在一些問題。 這包括(我認為):-
要恢復這種情況,請刪除存儲的刷新令牌,然后重新開始該過程。 好消息是,除了用戶吊銷方案(1)之外,這是一個測試環境問題,並不一定意味着您有錯誤。
看看https://developers.google.com/+/mobile/android/signin(這是Android的OAUTH),您可以檢查出什么地方不對,也可以在Project中使用示例代碼。 為了給您更多細節,您必須發布整個項目(例如,將其鏈接到GitHub)或發布感興趣的Class ;-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.