1

我正在尝试在我的网络应用程序中实现 youtube 认证用户的视频。使用 oauth 我想连接到 youtube api。这是我从 github 获取的代码,我现在正在使用https://gist.github.com/2970845

我已经用该代码实现了vimeo api 。但我不知道 Youtube api。当我请求时显示此错误request_token

<Response [400]>    
>>>r.text
u'parameter_absent\noauth_parameters_absent:oauth_consumer_key&oauth_signature_method&oauth_signature&oauth_timestamp&oauth_nonce&scope\n\n'

这是来自 Youtube 参考页面https://developers.google.com/accounts/docs/OAuth_ref的示例请求。

POST /accounts/OAuthGetRequestToken HTTP/1.1
Host: www.google.com
Content-Type: application/x-www-form-urlencoded
Authorization: OAuth
oauth_consumer_key="example.com",
oauth_signature_method="RSA-SHA1",
oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D",
oauth_timestamp="137131200",
oauth_nonce="4572616e48616d6d65724c61686176",
oauth_version="1.0"
oauth_callback="http://www.example.com/showcalendar.html"

scope="http://www.google.com/calendar/feeds http://picasaweb.google.com/data"

我不确定的是我在 gist 页面中显示的标题。我有这样的

>>> headers
{'Authorization': u'oauth_body_hash=xxxxxxxxxxxxxxxxxxxxxxx,oauth_nonce=62215234,oauth_timestamp=1340347725,oauth_consumer_key=xxxxxxxxxxxx.apps.googleusercontent.com,oauth_signature_method=HMAC-SHA1,oauth_version=1.0,oauth_signature=xxxxxxxxxxxxxxxxxxxxxxxx,scope=https://gdata.youtube.com,oauth_callback=http://127.0.0.1:8000/information/youtube/'}

但是 youtube 参考页面显示我们必须使用 "Authorization: OAuth"。我怎样才能在标题中给出它?

谢谢!

4

1 回答 1

0

如果你想给另一个客户端库一个机会(顺便包装请求),有rauth。我没有适合您的 YouTube 示例,但如果您查看 GitHub 上的现有示例,您可能可以按照它们的格式进行身份验证并针对 YouTube 的端点发出请求。

现在我意识到你可能无法使用另一个库有各种各样的原因,所以如果你不能使用,也没有什么难过的感觉。但我想把它作为一种选择。

于 2013-03-28T22:46:01.020 回答