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

Curl 来自Google/YouTube API的AuthSub令牌始终返回为无效,curl,google-api,youtube-api,Curl,Google Api,Youtube Api,有人有YouTube/Google API的使用经验吗 我正在尝试使用clientLogin登录Google/Youtube,检索AuthSub令牌,将其交换为多会话令牌,然后在我们的上传表单中使用它。 请注意,我们不会让其他用户登录我们的(安全)网站,这只是供我们使用(没有多用户)。我们只想通过我们自己的网站将视频上传到我们的YT账户,而无需登录/上传到YouTube 最终,一切都取决于第一步。我的AuthSub令牌始终被返回为无效(错误“403”) 我使用的所有步骤如下,用户名/密码已更改。

有人有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
收到的响应:

/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
/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"
/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"
/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
Auth=AIwbFAR99f3iACfkT-5PXCB-1tN4vlyP\u 1CiNZ8JOn6P-…YV4D4Zegremn4IL1E-M6czgfDXAR0w9fQ YouTubeUser=myyoutubeuser名称

使用的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
/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"
/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"
/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:将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"
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
收到的响应:

/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
/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"
/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"
/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
403无效的AuthSub令牌

使用的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
/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"
/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"
/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
步骤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"
收到响应:

/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
/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"
/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"
/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
403无效的AuthSub令牌

使用的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
/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"
/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"
/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
步骤4:尝试使用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"
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
收到的回复:

/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
/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"
/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"
/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
401令牌无效-AuthSub令牌无效

使用的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
/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"
/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"
/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

ClientLogin不返回AuthSub令牌。它们是不相关的。

ClientLogin不返回AuthSub令牌。它们是不相关的。

尝试授权:GoogleLogin auth=“Authorization\u KEY”

代替授权:AuthSub token=“授权\密钥”


对于客户端登录,请尝试授权:GoogleLogin auth=“Authorization\u KEY”

代替授权:AuthSub token=“授权\密钥”


对于客户端登录

有趣。在这个问题中我看不到任何Perl代码。Oops..有一个用Perl编写的后端脚本控制着一切。我将移除标签。有趣。在这个问题中我看不到任何Perl代码。Oops..有一个用Perl编写的后端脚本控制着一切。我将移除标签。