有没有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
答案 0 :(得分:2)
ClientLogin不会返回AuthSub令牌。他们是无关的。
答案 1 :(得分:0)
尝试授权:GoogleLogin auth =“AUTHORIZATION_KEY”
代替授权:AuthSub token =“AUTHORIZATION_KEY”
for ClientLogin