Использование сервисов Google Play с YouTube

Я пытаюсь использовать новый API Youtube V3: https://developers.google.com/youtube/v3/ в моем приложении для Android.

Чтобы войти в сервисы YouTube, я выбрал новые сервисы Google Play: http://developer.android.com/google/play-services/index.html

Вот мой код:

AccountManager manageurcomptes = AccountManager.get(ActiviteGeneral.this);
Account[] comptes = manageurcomptes
                        .getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
String jeton;
try {
    jeton = GoogleAuthUtil.getToken(ActiviteGeneral.this, comptes[0].name,
        "audience:server:client_id:xxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com");
    int i = 0;
} catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
} catch (GoogleAuthException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();

Для параметра области действия GoogleAuthUtil.getToken я следовал статье из блога разработчиков Android: «Проверка внутренних вызовов из приложений Android» http://android-developers.blogspot.fr/2013/01/verifying-back-end-calls-from-android.html и зарегистрировал свое приложение в Google API Console.

Я создал «Идентификатор клиента для установленных приложений».

Результатом является исключение GoogleAuthException с параметром «detailMessage» = «Unknown».

Где ошибка?


person bobygerm    schedule 23.01.2013    source источник


Ответы (1)


Я сделал пример, который показывает, как можно получить доступ к API YouTube v3 из приложения для Android, которое работает очень хорошо:

http://lookthiscode.blogspot.com.ar/2013/01/utilizando-youtube-data-api-v3-desde.html

На самом деле этот пример основан на официальном примере, который показывает, как использовать API задач из приложения для Android. Я изменил пример, чтобы использовать область проверки подлинности API YouTube.

Статья на испанском языке, но вы можете скачать исходный код проекта по ссылке в конце статьи.

Основной фрагмент кода для решения вашей проблемы следующий:

// Google Accounts
credential = GoogleAccountCredential.usingOAuth2(this, YouTubeScopes.YOUTUBE, YouTubeScopes.YOUTUBE_READONLY);
SharedPreferences settings = getPreferences(Context.MODE_PRIVATE);
credential.setSelectedAccountName(settings.getString(PREF_ACCOUNT_NAME, null));
// YouTube client
service =
        new com.google.api.services.youtube.YouTube.Builder(transport, jsonFactory, credential)
            .setApplicationName("Google-YouTubeAndroidSample/1.0").build();
person Matias Molinas    schedule 23.01.2013
comment
Спасибо, попробую так. Я думал, что могу получить токен через GoogleAuthUtil.getToken (сервисы Google Play) - person bobygerm; 24.01.2013
comment
С каких пор метод GoogleAuthUtil.getToken() начал выдавать исключение GoogleAuthException с сообщением BadUsername для электронной почты, не зарегистрированной на устройстве, вместо предыдущего исключения IllegalArgumentException с сообщением Несуществующая учетная запись 'email_address'? developer.android. com/reference/com/google/android/gms/auth/ , java.lang.String, java.lang.String) - person toobsco42; 06.11.2013