Где отозвать разрешения Google API, предоставленные на Android? - PullRequest
9 голосов
/ 19 декабря 2011

Я работаю с некоторым примером кода здесь:

http://code.google.com/p/google-api-java-client/source/browse/picasa-android-sample/src/main/java/com/google/api/services/samples/picasa/android/PicasaSample.java?repo=samples

Я авторизовал доступ в своем приложении для Android, но не могу найти, где теперь отменить доступ, поэтому я могу запуститьчерез это снова.Удаление APK не приводит к сбросу каких-либо разрешений.

Ответы [ 8 ]

8 голосов
/ 20 декабря 2011

Я полагаю, что если вы перейдете на https://accounts.google.com/IssuedAuthSubTokens, в нем должно быть указано ваше приложение в разделе «Подключенные сайты, приложения и службы», откуда вы можете отозвать доступ.

3 голосов
/ 13 октября 2014

Два шага для повторного запуска страницы авторизации:

  1. перейдите на https://accounts.google.com/IssuedAuthSubTokens, чтобы отозвать приложение, которое вы хотите. Это очистит разрешения со стороны сервера.
  2. Зайдите в настройки устройства Android-> Данные и время: перемотайте свое время на день или два вперед. Это заставит текущий токен истечь.
1 голос
/ 16 октября 2015

Пытаясь отозвать авторизацию для разрешений API Gmail, предоставленных моему приложению Android (все еще в режиме отладки), я понял, что оно появляется на https://security.google.com/settings/security/permissions, как упоминает @David Waters (это новая ссылка, но она идет кто же самое место), но только , если вы правильно включили API через Консоль разработчика Google .Это означает правильное добавление идентификатора клиента OAuth 2.0, даже если приложение все еще находится в разработке и находится в режиме отладки.

Существует очень хорошее руководство о том, как добавить свои учетные данные на Android Quickstart руководство на сайте API Gmail (шаги 1 и 2).

1 голос
/ 16 марта 2013

Вам необходимо программно отозвать токен.Сначала попробуйте пример приложения, размещенного по адресу: https://developers.google.com/drive/quickstart-android

. В этом примере приложения отображается диалоговое окно, в котором вы можете выбрать учетную запись, затем сделать фотографию и загрузить ее на Google Drive.Одна важная вещь, которую я обнаружил, состоит в том, что это примерное приложение в конечном итоге потерпит неудачу.Я обнаружил, что камера часть приложения вызывает сбои.Поэтому отключите часть кода камеры и просто замените файл каким-нибудь файлом на SD-карте и загрузите его вместо этого на диск.

Чтобы отозвать разрешение на использование диска, необходимо выполнить следующий код:

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 жалуется, что некоторые из этих разрешений предоставляются только системе, просто запустите Clean Project, и он удалит предупреждение,После того, как вы сделали это, вы должны удалить приложение и перезагрузить устройство.Для получения дополнительной информации об отзыве токенов см. Раздел «Отзыв токена» по адресу:

https://developers.google.com/accounts/docs/OAuth2WebServer

1 голос
/ 30 сентября 2012

Невозможно через какой-либо публичный, официальный API.

См:

Даже удаление и повторная установка приложения не помогают.

Это может быть способ на рутованном устройстве: Как заставить AccountManager отображать экран «Запрос доступа» после того, как пользователь уже разрешил доступ?

0 голосов
/ 09 февраля 2015

Вы можете отозвать разрешения учетной записи на ...

https://security.google.com/settings/security/permissions

Вы можете получить их с помощью [Настройки учетной записи]> [Разрешения учетной записи]

Доказательство этогоответ реальная сделка:

enter image description here

0 голосов
/ 15 августа 2013

Использование Google Play Services:

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, приложение покажет вам окно для разрешения снова в устройстве.

0 голосов
/ 19 декабря 2011

Просмотрите ваш файл AndroidManifest.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...