Токен OAuth2 с сервисами Google Play на Android

Я пытаюсь получить токен Oauth2 для Google Cloud Storage на Android с помощью сервисов Google Play. Я использую следующий код

try {
        gsToken=GoogleAuthUtil.getToken(this, email,
            "https://www.googleapis.com/auth/devstorage.read_only");
    } catch (IOException e) {
        e.printStackTrace();
    } catch (UserRecoverableAuthException userAuthEx) {
            startActivityForResult(userAuthEx.getIntent(),1);;
    } catch (GoogleAuthException e) {

    }

Это вызывает исключение GoogleAuthException. Эта область в настоящее время не поддерживается сервисами Google Play??


person Patrick    schedule 01.12.2012    source источник


Ответы (1)


При запросе у GoogleAuthUtil токенов OAuth2 необходимо добавить к области префикс строки "oauth2:". Если вам нужно несколько областей, вы можете перечислить их через разделитель пробелов.

Итак, в вашем случае строка области будет "oauth2: https://www.googleapis.com/auth/devstorage.read_only".

Дополнительные сведения см. на странице http://android-developers.blogspot.com/2012/09/google-play-services-and-oauth-identity.html.

person jham    schedule 04.12.2012
comment
Привет, @jham, раньше у меня это работало, но всего несколько дней назад оно перестало работать и теперь выдает эту ошибку com.google.android.gms.auth.GoogleAuthException: Unknown. Есть идеи, почему? Что-то не так с моими прицелами? gist.github.com/lawloretienne/7351151 - person toobsco42; 07.11.2013
comment
эй, у меня точно такая же проблема, GoogleAuthUtil.getToken раньше работал нормально, а недавно он начал выдавать неизвестное исключение. Вы нашли решение? - person Ryan Ye; 13.01.2014