Токен AuthSub из Google / YouTube API всегда возвращается как недействительный - PullRequest
1 голос
/ 18 ноября 2009

Кто-нибудь имеет опыт работы с YouTube / Google API?

Я пытаюсь войти в Google / Youtube с помощью clientLogin, получить токен AuthSub, обменять его на мультисессионный токен, а затем использовать в нашей форме загрузки. Просто обратите внимание, что другие пользователи не будут заходить на наш (безопасный) веб-сайт, это только для нашего использования (без многопользовательского режима). Мы просто хотим загрузить видео в наш аккаунт YT через наш собственный веб-сайт без необходимости входа / загрузки на YouTube.

В конечном итоге все зависит от первого шага. Мой токен AuthSub всегда возвращается как недействительный (ошибка «403»).

Все шаги, которые я использовал, указаны ниже с измененным именем пользователя и паролем. У кого-нибудь есть понимание, почему мой AuthSub всегда недействителен? Я трачу огромное количество времени, пытаясь заставить это работать.

ШАГ 1. Получение токена authsub с Youtube / Google

POST /youtube/accounts/ClientLogin HTTP/1.1
User-Agent: curl/7.10.6 (i386-redhat-linux-gnu) libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.1.4
Host: www.google.com
Pragma: no-cache
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Content-Type:application/x-www-form-urlencoded
Content-Length: 86
Email=MyGoogleUsername&Passwd=MyGooglePasswd&accountType=GOOGLE&service=youtube&source=Test

ОТВЕТ НА ПОЛУЧЕННЫЙ ОТВЕТ:

Auth = AIwbFAR99f3iACfkT-5PXCB-1tN4vlyP_1CiNZ8JOn6P -...... yv4d4zeGRemNm4il1e-M6czgfDXAR0w9fQ YouTubeUser = MyYouTubeUsername

ИСПОЛЬЗОВАННАЯ КОМАНДА CURL:

/usr/bin/curl 
-S 
-v 
--location
https://www.google.com/youtube/accounts/ClientLogin
--data
Email=MyGoogleUsername&Passwd=MyGooglePasswd&accountType=GOOGLE&service=youtube&source=Test
--header
Content-Type:application/x-www-form-urlencoded

ШАГ 2. Замена токена AuthSub на многоцелевой токен

GET /accounts/AuthSubSessionToken HTTP/1.1
User-Agent: curl/7.10.6 (i386-redhat-linux-gnu) libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.1.4
Host: www.google.com
Pragma: no-cache
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Content-Type:application/x-www-form-urlencoded
Authorization: AuthSub token="AIwbFASiRR3XDKs......p5Oy_VA_9U2yV1enxJoVGSgMlZqTcjKw9mS861vlc9GWTH9D9sQ"

Ответ получен:

403 Неверный токен AuthSub.

используется команда curl:

/usr/bin/curl 
-S 
-v
--location
https://www.google.com/accounts/AuthSubSessionToken
--header
Content-Type:application/x-www-form-urlencoded
-H
Authorization: AuthSub token="AIwbFAQR_4xG2g.....vp3BQZW5XEMyIj_wFozHSTEQ-BQRfYuIY-1CyqLeQ"

ШАГ 3: Проверка, чтобы токен был действительным / действительным

GET /accounts/AuthSubTokenInfo HTTP/1.1
User-Agent: curl/7.10.6 (i386-redhat-linux-gnu) libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.1.4
Host: www.google.com
Pragma: no-cache
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Content-Type:application/x-www-form-urlencoded
Authorization: AuthSub token="AIwbFASiRR3XDKsNkaIoPaujN5RQhKs3u.....A_9U2yV1enxJoVGSgMlZqTcjKw9mS861vlc9GWTH9D9sQ"

Полученный ответ:

403 Неверный токен AuthSub.

используется команда curl:

/usr/bin/curl
-S 
-v
--location
https://www.google.com/accounts/AuthSubTokenInfo
--header
Content-Type:application/x-www-form-urlencoded
-H
Authorization: AuthSub token="AIwbFAQR_4xG2gHoAKDsNdFqdZdwWjGeNquOLpvp3BQZW5XEMyIj_wFozHSTEQ-BQRfYuIY-1CyqLeQ"

ШАГ 4: Попытка получить токен загрузки с помощью токена authsub

POST /action/GetUploadToken HTTP/1.1
User-Agent: curl/7.10.6 (i386-redhat-linux-gnu) libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.1.4
Host: gdata.youtube.com
Pragma: no-cache
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Content-Type:application/atom+xml
Authorization: AuthSub token="AIwbFASiRR3XDKsNkaIoPaujN5RQhp5Oy_VA_9U2yV1enxJoVGSgMlZqTcjKw9mS861vlc9GWTH9D9sQ"
X-Gdata-Key:key="AI39si5EQyo-TZPFAnmGjxJGFKpxd_7a6hEERh_3......R82AShoQ"
Content-Length:0
GData-Version:2

Полученный ответ:

401 Недопустимый токен - неверный токен AuthSub.

Используемая команда Curl:

/usr/bin/curl
-S
-v
--location
http://gdata.youtube.com/action/GetUploadToken
-H
Content-Type:application/atom+xml
-H
Authorization: AuthSub token="AIwbFASiRR3XDKs....sYDp5Oy_VA_9U2yV1enxJoVGSgMlZqTcjKw9mS861vlc9GWTH9D9sQ"
-H
X-Gdata-Key:key="AI39si5EQyo-TZPFAnmGjxJGF......Kpxd6dN2J1oHFQYTj_7a6hEERh_3E48R82AShoQ"
-H
Content-Length:0
-H
GData-Version:2

Ответы [ 2 ]

2 голосов
/ 15 декабря 2009

ClientLogin не возвращает токены AuthSub. Они не связаны.

0 голосов
/ 16 июля 2011

Попробуйте авторизацию: GoogleLogin auth = "AUTHORIZATION_KEY"

вместо авторизации: AuthSub token = "AUTHORIZATION_KEY"

для ClientLogin

...