2009-11-18 10 views
1

Toute personne présente une expérience avec l'API YouTube/Google? J'essaie de me connecter à Google/Youtube en utilisant clientLogin, de récupérer un jeton AuthSub, de l'échanger contre un jeton multisession, puis de l'utiliser dans notre formulaire de téléchargement. Juste une note que nous n'allons pas avoir d'autres utilisateurs se connectant à notre site (sécurisé), c'est pour notre usage seulement (pas de multi-utilisateurs). Nous voulons juste un moyen de télécharger des vidéos sur notre compte YT via notre propre site Web sans avoir à vous connecter/télécharger sur YouTube.Le jeton AuthSub de l'API Google/YouTube est toujours renvoyé comme non valide.

Finalement, tout dépend de la première étape. Mon jeton AuthSub est toujours renvoyé comme non valide (erreur '403').

Toutes les étapes que j'ai utilisées sont ci-dessous avec le nom d'utilisateur/mot de passe changé. Quelqu'un a-t-il un aperçu de la raison pour laquelle mon AuthSub est toujours invalide? Je passe énormément de temps à essayer de faire en sorte que cela fonctionne.

ÉTAPE 1: Obtenir le jeton AuthSub de 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 

RÉPONSE REÇUES:

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

COMMANDE CURL UTILISÉE:

/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 

ÉTAPE 2: Remplacement du jeton AuthSub pour un multi-usage jeton

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" 

réponse reçu:

403 jeton non valide AuthSub.

commande boucle utilisé:

/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" 

ÉTAPE 3: Vérifier si le jeton est bon/valide

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" 

Réponse reçue:

403 non valide Jeton AuthSub.

commande curl utilisé:

/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" 

ÉTAPE 4: Essayer d'obtenir le jeton de téléchargement en utilisant le AuthSub jeton

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 

Recevied Réponse:

401 jeton invalide - Invalid AuthSub tok en.

commande Curl utilisé:

/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 
+0

Intéressant. Je ne vois aucun code Perl n'importe où dans cette question. –

+0

Oups ... Il existe un script backend écrit en Perl qui contrôle tout. Je vais retirer l'étiquette. –

Répondre

2

ClientLogin ne retourne pas les jetons AuthSub. Ils ne sont pas liés.

0

Essayez autorisation: GoogleLogin auth = "AUTHORIZATION_KEY"

au lieu de l'autorisation: AuthSub jeton = "AUTHORIZATION_KEY"

pour ClientLogin