Google api 撤销授予我的应用程序Google Drive API的访问权限

Google api 撤销授予我的应用程序Google Drive API的访问权限,google-api,google-drive-api,Google Api,Google Drive Api,我如何撤销已授予我的Google Drive web应用程序的访问权限,以便在用户下次使用时重新向他请求权限?访问您授予访问权限的应用程序和网站列表。在每一个按钮旁边,您将看到一个撤销访问按钮 进入该页面的说明位于如果您关闭了数据库中的所有刷新令牌,将查询参数approval\u prompt=force添加到auth请求将解决此问题。这将导致在用户下次批准请求时重新发布刷新令牌 要撤销您的访问令牌,您需要“获取”(!)此url: {token} 其中{token}是您的令牌的值,如下所述:

我如何撤销已授予我的Google Drive web应用程序的访问权限,以便在用户下次使用时重新向他请求权限?

访问您授予访问权限的应用程序和网站列表。在每一个按钮旁边,您将看到一个撤销访问按钮


进入该页面的说明位于

如果您关闭了数据库中的所有刷新令牌,将查询参数approval\u prompt=force添加到auth请求将解决此问题。这将导致在用户下次批准请求时重新发布刷新令牌

要撤销您的访问令牌,您需要“获取”(!)此url: {token} 其中{token}是您的令牌的值,如下所述:

对于Java API(其他语言不知道),截至2012年9月9日,还没有用于此的API。 我使用以下代码成功撤销了令牌:

class myGoogleApi {
    private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();

    ...

    public revoke(String token) {
        HttpRequestFactory factory = HTTP_TRANSPORT.createRequestFactory();
        GoogleUrl url = new GoogleUrl("https://accounts.google.com/o/oauth2/revoke?token="+token);
        HttpRequest request = factory.buildGetRequest(url);
        HttpResponse response = request.execute();
        ...
    }

使用Google Play服务:

添加到您的范围中

例如:

String scope="oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile"

final String token = GoogleAuthUtil.getToken(context, "xxxx@gmail.com", scope);
或“暴力”


现在,当您在此处撤销访问权限时,应用程序将再次显示设备中的权限窗口。

要撤销访问权限,请转到下面的url


选择需要撤销的应用程序,然后单击“删除”。

基本上,我的数据存储搞砸了,所以我需要重新使用刷新令牌。你知道我如何使用python客户端库做到这一点吗?在构建流时只需通过批准\u prompt=force。在发出身份验证请求时,任何附加参数都会作为查询参数传递。也许我的问题还不够清楚。我希望我的应用程序的用户在下次尝试访问我的应用程序时得到授权提示,因为我不再拥有他们的刷新令牌。回答得很好-我遇到这个问题需要撤销对第三方应用程序的访问权限,因此不知道他们被授予的令牌是什么。此链接正是所需的。请告诉我如何从撤销访问令牌的请求中获得json响应?@Karan,根据文档,没有json响应:结果以HTTP状态代码返回:“如果成功处理撤销,则响应的状态代码为200。对于错误情况,将返回状态代码400和错误代码。“
Intent res = new Intent();
res.addCategory("account:xxxx@gmail.com");
res.addCategory("scope:oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile");
res.putExtra("service", "oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile");
Bundle extra= new Bundle();
extra.putString("androidPackageName","com.your.package");
res.putExtra("callerExtras",extra);
res.putExtra("androidPackageName","com.your.package");
res.putExtra("authAccount","xxxx@gmail.com");

String mPackage = "com.google.android.gms";
String mClass = "com.google.android.gms.auth.TokenActivity";
res.setComponent(new ComponentName(mPackage,mClass));
startActivityForResult(res,100);