Могу ли я получить авторизацию для Youtube Reporting API из приложения без пользовательского интерфейса? - PullRequest
6 голосов
/ 28 мая 2020

Я хочу периодически запускать приложение (на AWS Lambda), которое извлекает отчеты с использованием API отчетов Youtube и сохраняет отчеты в базе данных. Я владелец канала Youtube.

Однако у меня возникают проблемы с настройкой авторизации. В документах упоминается ряд потоков для OAuth. Среди них поток учетных записей службы кажется подходящим здесь, поскольку я не пытаюсь получить доступ к данным других пользователей, а у моего приложения не будет пользовательского интерфейса. Однако они упоминают, что «YouTube Reporting API и YouTube Analytics API не поддерживают этот поток». Для других потоков, то есть на стороне сервера и на стороне клиента, похоже, мне понадобится приложение пользовательского интерфейса.

Я запустил их Java образцы кода локально, и он открывает браузер для авторизации.

Я хотел бы знать, можно ли выполнить авторизацию без поддержки пользовательского интерфейса / браузера. Это похоже на обычный вариант использования, который следует поддерживать.

Это связанное переполнение стека ответ упоминает «Вместо этого создайте и используйте учетные данные Google для веб-клиента. Сохраните и используйте токен, сгенерированный из потока». Если я правильно понимаю, мне нужно будет сгенерировать идентификатор клиента и секрет клиента из консоли разработчика Google , а затем, возможно, использовать oauth plays для создания токена доступа. Однако срок действия этого токена истечет в течение 24 часов. Я могу продолжать обновлять токен, но это похоже на временное решение.

В случае, если он не поддерживается, я рассматриваю альтернативу: мое приложение отправляет электронное письмо со ссылкой для авторизации и продолжает работать, когда получатель электронной почты откроет ссылку и войдет в систему. Я хотел бы знать, если получение этой ссылки возможно с помощью библиотеки oauth от Google.

Примечание. Я не использую Google App Engine или Compute Engine.

1 Ответ

1 голос
/ 28 мая 2020

API YouTube не поддерживают авторизацию учетной записи службы. Вам нужно будет использовать Oauth2 для авторизации кода один раз, используя автономный доступ. это даст вам токен refre sh, который можно использовать в любое время в будущем для запроса нового токена доступа.

Вам нужно будет загрузить этот refre sh токен на сервер вместе с вашим кодом, и тогда он сможет получить доступ к вашим данным без запроса доступа пользователя.

...