Я пытаюсь использовать API YouTubeData с аутентификацией OAuth 2.0 на Android, и я как бы борюсь с ним.
Я много искал в Интернете, но для реализации Android не так много.
Прежде всего, мне непонятно, какой лучший способ получить токен OAuth. В документе они предполагают, что для Android лучше получить его с помощью сервиса Google Play. Это правда? если да, это должно быть довольно тривиально после этого руководства: https://developers.google.com/android/guides/http-auth.
Но в этот момент у меня будет токен в объекте String
.. как я должен использовать его с API-интерфейсом YouTubeData? Должен ли я разместить его где-нибудь в YouTube.Builder
?
YouTube youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, new HttpRequestInitializer() {
public void initialize(HttpRequest request) throws IOException {
}
}).setApplicationName("AppName").build();
если да, кто-нибудь знает где?
Поиск в StackOverflow я столкнулся с этим вопросом: Что делать после получения Auth Token - API Youtube для Android. Здесь Ибрагим Улукая говорит, что лучше использовать GoogleAccountCredential
. Для того, что я понял (Доступ к API Google - GoogleAccountCredential.usingOAuth2 vs GoogleAuthUtil.getToken(), версия Android GoogleAccountCredential
должна использовать GoogleAuthUtil
из библиотеки сервисов Google Play, поэтому было бы очень полезно упростить процесс. Я посмотрел примерный проект, предложенный Ибрагимом Улукая (https://github.com/youtube/yt-direct-lite-android), и я реализовал все так же, как и он. Но это не работает очень хорошо, поскольку я получаю это сообщение только в logcat: "Была ошибка IO: com.google.android.gms.auth.UserRecoverableAuthException: NeedPermission: null".
(Обратите внимание, что я включил все необходимые API-интерфейсы в Google Консоль и создал идентификатор клиента для своего приложения)
В этот момент я потерял.
Должен ли я использовать непосредственно GoogleAuthUtil
из библиотеки сервисов Google Play? в этом случае после получения токена как String
, как я могу использовать его с API-интерфейсами YouTubeData?
Или я должен использовать GoogleAccountCredential
? в этом случае кто-то знает, как я могу решить ошибку "NeedPersmission: null"?
---- EDIT:
подробно о том, что пытается сделать мое приложение:, являясь тем самым моим первым опытом работы с такими API-интерфейсами, я начал с простых вещей: извлекать видеоинформацию и затем воспроизводить эти видео без какой-либо аутентификации пользователя, Мне удалось сделать это довольно легко, но для моего приложения мне нужно получить доступ к пользовательским данным, в частности пользователи должны иметь возможность любить и комментировать видео. Поэтому я начал внедрять OAuth2, пытаясь выполнить те же самые точные запросы, которые я делал раньше (получение информации о видео).