Однопользовательский сценарий 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#OAuth2_Installed_Applications_Flow

Сначала зарегистрируйте 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.