Однопользовательский сценарий YouTube API с OAuth (загрузка видео)

Этот вопрос уже задавался, но никогда не отвечал.

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

Мне не нужно позволять любому пользователю загружать видео в свои учетные записи, поэтому мне не нужно проходить весь процесс OAuth; особенно мне не нужно никого перенаправлять куда-либо: мне нужны только мои скрипты для аутентификации от моего имени (а не от кого-либо еще).

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

API Twitter, который также использует OAuth, предоставляет простой способ аутентификации с помощью собственной учетной записи владельца приложения за один шаг с использованием токена доступа, который вы можете найти на странице администрирования вашего приложения. Как я могу получить аналогичный токен для моего приложения на Youtube?

Спасибо, м.

1 ответ

Решение

Попробуйте OAuth 2.0 для установленного приложения: http://code.google.com/apis/youtube/2.0/developers_guide_protocol.html

Сначала зарегистрируйте API, чтобы получить client_id.

Затем войдите в свою учетную запись Google, введите следующий URL, измените client_id на свой. redirect_uri должен быть установлен в "urn: ietf: wg: oauth: 2.0: oob".

https://accounts.google.com/o/oauth2/auth?client_id=1084945748469-eg34imk572gdhu83gj5p0an9fut6urp5.apps.googleusercontent.com&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://gdata.youtube.com&response_type=code&access_type=offline

Затем вы авторизуете свое приложение и получаете код авторизации.

Затем откройте терминал и введите (измените ваш код, client_id и client_secret):

curl https://accounts.google.com/o/oauth2/token -d "code=4/ux5gNj-_mIu4DOD_gNZdjX9EtOFf&client_id=1084945748469-eg34imk572gdhu83gj5p0an9fut6urp5.apps.googleusercontent.com&client_secret=hDBmMRhz7eJRsM9Z2q1oFBSe&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code"

Вы получите ответ как:

{ "access_token" : "ya29.AHES6ZTtm7SuokEB-RGtbBty9IIlNiP9-eNMMQKtXdMP3sfjL1Fc", "token_type" : "Bearer", "expires_in" : 3600, "refresh_token" : "1/HKSmLFXzqP0leUihZp2xUt3-5wkU7Gmu2Os_eBnzw74" }

Запомните refresh_token, и каждый раз, когда вы запускаете свое приложение, вам необходимо получить новый access_token с refresh_token.

Другие вопросы по тегам