2012-02-24 43 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();