2012-02-24 60 views
2

我正在將Google日曆集成到我的Android應用程序中。我遵循在http://code.google.com/apis/calendar/v3/using.html#client上解釋的示例來授權和檢索訪問令牌和刷新令牌。一切工作正常,因爲在文檔中一切都很好解釋。但是,我無法找到有關如何以編程方式恢復刷新令牌的示例代碼。有誰知道如何恢復刷新令牌?我使用Java進行編程。如何在Java中撤消Google API刷新令牌?

-Ali

+0

我不相信你可以,目前。用戶可以撤消您的應用對其信息的訪問權限,但您的應用無法撤消AFAIK自己的訪問權限。 – 2012-02-24 03:04:10

+0

其實你可以。根據以下文檔:http://code.google.com/apis/accounts/docs/OAuth2WebServer.html「要以編程方式撤銷令牌,您的應用程序向https://accounts.google.com/o/發送請求oauth2/revoke並將刷新標記作爲參數包含在內容中。「未解釋的是,如何使用谷歌提供的庫google-api-client-1.6.0-beta來做到這一點。我問是否有人有關於如何使用這個庫撤銷刷新令牌的經驗。 – 2012-02-24 12:04:06

+0

啊,真棒。謝謝,你每天都會學到新的東西! :) – 2012-02-24 14:17:19

回答

0

首先,使用API​​撤銷令牌,使用令牌本身。

String url = String.format(
    "https://accounts.google.com/o/oauth2/revoke?token=%s",token); 

get(url, token); // An example helper that adds the token to the request. 

而且,從數據存儲(或其他存儲機構)如果刷新令牌或訪問令牌是由您的應用程序緩存中刪除令牌。

dataStoreFactory.getDataStore<StoredCredential>("theUserId").clear();