#javascript #oauth-2.0 #google-api #youtube-api #pagekit
#javascript #oauth-2.0 #google-api #youtube-api #pagekit
Вопрос:
Я пытаюсь создать виджет для сайтов CMS, где я могу аутентифицировать своего пользователя на странице администратора, а затем показывать таймер до следующей прямой трансляции YouTube и ссылаться непосредственно на нее со своей страницы.
Я успешно использовал youtube.liveBroadcasts.list
api и получил список моих трансляций, отображающий его на странице. Но я хочу иметь возможность показывать это (о моем канале) на странице, когда другой пользователь посещает страницу, без необходимости входа в систему или использования аутентификации любого рода.
Ответ №1:
Я думаю, что для использования этих запросов из Youtube API требуется логин. Например, когда вы просто вставляете это в свой браузер в прямом эфире.перечислите запрос URI в вашем браузере
https://www.googleapis.com/youtube/v3/liveBroadcasts
без входа в систему вы получите сообщение об ошибке:
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization",
Я думаю, что это также помогло бы прочитать о реализации авторизации OAuth 2.0.
Это поддерживаемые потоки OAuth:
- Серверный поток поддерживает веб-приложения, которые могут безопасно хранить постоянную информацию.
- Поток на стороне клиента поддерживает приложения JavaScript, запущенные в браузере.
- Поток установленных приложений поддерживает приложения, установленные на устройстве, таком как телефон или компьютер.
- Device flow поддерживает устройства с ограниченными возможностями ввода, такие как игровые консоли и видеокамеры.
* Поток учетных записей службы поддерживает взаимодействия между серверами, которые не имеют доступа к пользовательской информации. Однако API данных YouTube не поддерживает этот поток. Поскольку нет способа связать учетную запись сервиса с учетной записью YouTube, попытки авторизации запросов с помощью этого потока будут генерировать ошибку NoLinkedYouTubeAccount.
Короче говоря, я думаю, вам нужно авторизоваться для выполнения этого вызова API.