我與這裏的一些示例代碼工作:何處撤銷在Android上授予的Google API權限?
我授權我的Android應用程序的訪問,但我找不到在哪裏,現在撤銷訪問,所以我可以通過它再次運行。卸載APK似乎沒有重置任何權限。
我與這裏的一些示例代碼工作:何處撤銷在Android上授予的Google API權限?
我授權我的Android應用程序的訪問,但我找不到在哪裏,現在撤銷訪問,所以我可以通過它再次運行。卸載APK似乎沒有重置任何權限。
我相信如果你去https://accounts.google.com/IssuedAuthSubTokens它應該列出你的應用程序在「關聯網站,應用程序和服務」從那裏你可以撤銷訪問。
看看你的AndroidManifest文件。
這是不可能通過任何公共的官方API。
參見:
即使卸載並重新安裝應用程序並不能幫助。
這可能是一個植根於設備上的方法:你需要以編程方式撤銷令牌 How do you force AccountManager to show the "Access Request" screen after a user has already allowed access?
。首先,試用下面發佈的示例應用程序: https://developers.google.com/drive/quickstart-android
此示例應用程序顯示對話框,讓您選擇一個帳戶,然後拍攝照片,然後將其上傳到Google雲端硬盤。我發現的一件重要事情是,這個示例應用程序最終會失敗。我發現應用程序的相機部分會導致崩潰。因此,禁用代碼的攝像頭部分,只需將文件替換爲SD卡上的某個文件,然後將文件上傳到Drive。
要撤銷使用驅動器許可,您需要執行下面的代碼:
String token = credential.getToken();
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();
參考示例代碼如何訪問憑據變量。此外,您必須在不在主線程中的線程中運行上述代碼,否則將失敗。
您還需要添加以下權限。示例代碼無法指明這些權限,如果沒有他們的應用程序將崩潰:
<uses-permission android:name="android.permission.ACCOUNT_MANAGER" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
如果Eclipse的抱怨,其中一些權限只授予系統,只要運行清理項目,它會刪除該警告。完成此操作後,您應該卸載應用程序並重新啓動設備。有關撤銷令牌的更多信息,請參見在 「吊銷令牌」:
謝謝,這種方法工作正常。 – tcboy88 2014-01-08 18:30:21
使用谷歌播放服務:
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, "[email protected]", scope);
或「強力」
Intent res = new Intent();
res.addCategory("account:[email protected]");
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","[email protected]");
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應用程序再次顯示了在設備的許可窗口。
兩個步驟再次觸發授權頁面:
這適用於我與Google雲端硬盤的應用連接。在測試時,我將日期定在快進日期。叮叮噹噹取消訪問並運行授權頁面後,每次都會彈出。 – 2015-05-29 05:11:10
可以撤銷對帳戶任何權限...
https://security.google.com/settings/security/permissions
您可以通過[帳戶設定]> [帳戶權限]
證明這個答案是實打實那裏:
掙扎後t o撤銷對我的Android應用上授予的Gmail API權限的授權(仍在調試中),我發現它確實出現在https://security.google.com/settings/security/permissions上,如@David Waters提及的(這是一個新鏈接,但發送到同一位置),但只有已通過Google Developers Console正確啓用API。這意味着要正確添加您的OAuth 2.0客戶端ID,即使應用程序仍處於開發階段並處於調試模式。
有關如何在Gmail API網站上的Android Quickstart指南中添加憑據的非常好的指南(步驟1 & 2)。
我的Android開發沒有列出,只有我已經授權的網站。 – gdonald 2011-12-20 18:05:50
@gdonald我在找那個問題完全一樣的答案。在IssuedAuthSubTokens下,我也沒有看到我列出的Android應用程序。 – 2012-09-30 18:42:37
http://stackoverflow.com/questions/6852256/how-do-you-force-accountmanager-to-show-the-access-request-screen-after-a-user – 2012-12-04 03:43:28