来自Google / YouTube API的AuthSub令牌始终返回为无效

时间:2009-11-18 16:48:42

标签: curl google-api youtube-api

有没有YouTube / Google API经验的人?

我正在尝试使用clientLogin登录Google / Youtube,检索AuthSub令牌,将其换成多会话令牌,然后在我们的上传表单中使用它。 请注意,我们不会让其他用户登录我们的(安全)网站,这仅供我们使用(没有多用户)。我们只想通过自己的网站将视频上传到我们的YT帐户,而无需登录/上传到YouTube。

最终,一切都取决于第一步。我的AuthSub令牌始终返回为无效(错误'403')。

我使用的所有步骤都在下面,用户名/密码已更改。任何人都知道为什么我的AuthSub始终无效?我花了很多时间试图让它发挥作用。

第1步:从Youtube / Google获取authsub令牌

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

收到回复:

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

CURL COMMAND USED:

/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令牌。

使用了卷曲命令:

/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 个答案:

答案 0 :(得分:2)

ClientLogin不会返回AuthSub令牌。他们是无关的。

答案 1 :(得分:0)

尝试授权:GoogleLogin auth =“AUTHORIZATION_KEY”

代替授权:AuthSub token =“AUTHORIZATION_KEY”

for ClientLogin