【问题标题】:Signing requests with python-oauth2 [closed]使用 python-oauth2 签署请求 [关闭]
【发布时间】:2012-04-10 02:47:46
【问题描述】:

python-oauth2 的 Github 页面提供了有关使用 req = oauth.Request(...) 创建签名请求的说明,该请求返回一个可以签名的字典。但我如何实际发送这些请求?

【问题讨论】:

  • @Daenyth:这不是那个问题的重复。该问题具有自定义 Python 代码来创建此问题使用 python-oauth2 库的签名。
  • 我不指望评论能起到多大作用,但我想反驳关闭的“过于本地化”的原因。 python-oauth2 被广泛使用,文档很好地解释了如何构建请求,但没有解释如何发送请求。这个问题的答案帮助我解决了这个问题。

标签: python oauth oauth-2.0


【解决方案1】:

查看自述文件中的下一步。

使用客户端

import oauth2 as oauth

# Create your consumer with the proper key/secret.
consumer = oauth.Consumer(key="your-twitter-consumer-key", 
    secret="your-twitter-consumer-secret")

# Request token URL for Twitter.
request_token_url = "http://twitter.com/oauth/request_token"

# Create our client.
client = oauth.Client(consumer)

# The OAuth Client request works just like httplib2 for the most part.
resp, content = client.request(request_token_url, "GET")
print resp
print content

【讨论】:

  • 我认为我是文档极差的受害者。我认为我什至不需要“签名”部分,因为客户端在您的示例中所做的似乎足以用于 OAuth 服务。
【解决方案2】:

只需在最后添加这一行:

rs = urllib2.urlopen(req.to_url())

req 是您的请求对象。

【讨论】:

  • 这对我不起作用 - 它只是将(未签名)请求发送到 url。我收到一些“错误的身份验证数据”消息,因为请求未签名。
  • 其实文档中缺少客户端的token参数。应该是:client = oauth.Client(consumer, token); resp, content = client.request(URL, "GET") 顺便说一句。为什么这个问题被关闭了?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-19
  • 1970-01-01
相关资源
最近更新 更多