OAuth или API ключ авторизации? - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь создать прямую трансляцию на YouTube с помощью Google API.Теперь это работает только тогда, когда я использую oauth-авторизацию.Когда я использую авторизацию ключа API, я получаю ошибку авторизации (требуется логин)

Когда я использую авторизацию oauth - требуется вводить код подтверждения каждый раз, когда я создаю новый перевод.Можно ли использовать метод API liveStreams-> insert для авторизации, который не требует ввода кода подтверждения?

1 Ответ

0 голосов
/ 15 апреля 2019

Из того, что вы пишете, мне кажется, что вы не поняли концепцию OAuth и когда использовать OAuth против ключа API.

Попытайтесь думать об этом так: у вас, как человека, есть учетная запись Google. Этот аккаунт Google не совпадает с вашим аккаунтом YouTube (или, как его чаще называют, вашим каналом YouTube). Но ваша учетная запись Google связана с вашим каналом YouTube (из которых вы можете иметь несколько). Поскольку вы вошли в свою учетную запись Google, а ваш канал и учетная запись Google связаны, веб-сайт YouTube знает, кто вы, и предоставляет вам доступ к своему каналу.

Теперь вы переходите на консоль Google Cloud. Здесь вы создаете проект, который очень похож на учетную запись YouTube в том смысле, что он также является независимой учетной записью, которая в данном случае представляет ваше приложение, но связана с вашей учетной записью Google, так что веб-сайт Cloud Console знает, как дать вам доступ к проекту, если вы вошли в свою учетную запись Google.

ОДНАКО, ваш аккаунт YouTube не связан с вашим проектом Cloud Console. Когда вы делаете запрос API с ключом API, API видит вас не так, как в «вашей учетной записи Google», а скорее проект Cloud Console вашего приложения. Вот почему с ключом API вы можете получить доступ только к общедоступным данным (все, что вы могли «видеть», просматривая YouTube, не входя в систему).

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

Когда вы говорите, что должны предоставлять код подтверждения для каждого запроса, я думаю, что вы не сохраняете токен доступа и не обновляете токен. Я настоятельно рекомендую вам прочитать Использование OAuth 2.0 для доступа к API Google и Получение учетных данных авторизации для разработчиков Google, чтобы помочь вам начать работу.

...