【问题标题】:AuthSub token from Google/YouTube API is always returned as invalid来自 Google/YouTube API 的 AuthSub 令牌始终返回为无效
【发布时间】:2009-11-18 16:48:42
【问题描述】:

有人使用过 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

收到回复:

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 令牌无效。

使用的卷曲命令:

/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

【问题讨论】:

  • 有趣。我在这个问题的任何地方都没有看到 Perl 代码。
  • 哎呀..有一个用 perl 编写的后端脚本可以控制一切。我将删除标签。

标签: curl google-api youtube-api


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    尝试授权:GoogleLogin auth="AUTHORIZATION_KEY"

    代替授权:AuthSub token="AUTHORIZATION_KEY"

    客户端登录

    【讨论】:

      猜你喜欢
      • 2011-11-27
      • 1970-01-01
      • 1970-01-01
      • 2016-06-26
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多