Однопользовательский сценарий YouTube API с OAuth (загрузка видео) - PullRequest
11 голосов
/ 01 мая 2011

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

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

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

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

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

Спасибо, м.

1 Ответ

14 голосов
/ 16 января 2012

Попробуйте 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.

...