撤消授予我的应用Google Drive API的访问权限

时间:2012-08-18 09:26:12

标签: google-api google-drive-api

如何撤销已授予我的Google云端硬盘网络应用程序的访问权限,以便在用户下次使用时会再次要求他提供权限?

5 个答案:

答案 0 :(得分:22)

要撤消访问令牌,您需要“获取”(!)此网址: https://accounts.google.com/o/oauth2/revoke?token= {}记号 其中{token}是令牌的值,如下所述: https://developers.google.com/accounts/docs/OAuth2WebServer#tokenrevoke

对于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();
        ...
    }

答案 1 :(得分:7)

如果您破坏了数据库中的所有刷新令牌,则将查询参数approval_prompt = force添加到auth请求将解决该问题。当用户下次批准请求时,它将导致刷新令牌重新发布。

答案 2 :(得分:3)

访问https://accounts.google.com/b/0/IssuedAuthSubTokens?hl=en以获取您授予访问权限的应用程序和网站列表。在它们旁边,您将找到一个撤销访问按钮。

访问该页面的说明位于http://support.google.com/accounts/bin/answer.py?hl=en&answer=41236

答案 3 :(得分:2)

要撤消访问权限,请转到以下网址

https://security.google.com/settings/security/permissions?pli=1

选择您需要撤销的应用,然后点击删除。

答案 4 :(得分:0)

使用Google Play服务:

http://developer.android.com/reference/com/google/android/gms/auth/GoogleAuthUtil.html

https://www.googleapis.com/auth/userinfo.profile添加到您的范围。

示例:

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);

或“蛮力”

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);

现在,当您撤消此处https://accounts.google.com/IssuedAuthSubTokens的访问权限时,应用程序会再次在设备中显示权限窗口。