【问题标题】:Signing twitter user stream request with OAuth使用 OAuth 签署 twitter 用户流请求
【发布时间】:2011-06-11 15:28:51
【问题描述】:

我正在尝试使用 OAuth 签署请求。我看了很多关于它的文章,但我现在不知道如何实际使用它。

我有这个 URL:https://userstream.twitter.com/2/user.json 我想为某个用户调用它。我有一个应用程序(带有消费者密钥)和我想使用的帐户的 API 密钥。所以唯一剩下要做的就是签名。 我使用了这个页面:http://hueniverse.com/2008/10/beginners-guide-to-oauth-part-iv-signing-requests/ 并得到了一个看起来像这样的代码块:

GET /photos?size=original&file=vacation.jpg HTTP/1.1
Host: photos.example.net:80
Authorization: OAuth realm="http://photos.example.net/photos",
    oauth_consumer_key="dpf43f3p2l4k3l03",
    oauth_token="nnch734d00sl2jdk",
    oauth_nonce="kllo9940pd9333jh",
    oauth_timestamp="1191242096",
    oauth_signature_method="HMAC-SHA1",
    oauth_version="1.0",
    oauth_signature="tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D"

但是,cURL 不接受这一点。如何构建可以与 cURL 一起使用的东西?

提前致谢

编辑:我真的不需要 cURL,只是我可以在 GNU/Linux 上与 C++ 一起使用的东西

【问题讨论】:

    标签: oauth twitter twitter-oauth


    【解决方案1】:

    当我从 (Windows) 命令行 curl 一个 Twitter 请求并且必须添加一个 OAuth 授权标头时,我已经这样做了:

    curl -k "https://userstream.twitter.com/2/user.json" --header "Authorization: OAuth realm=""Twitter API"",oauth_consumer_key=""dpf43f3p2l4k3l03"",oauth_token=""nnch734d00sl2jdk"",oauth_nonce=""kllo9940pd9333jh"",oauth_timestamp=""1191242096"",oauth_signature_method=""HMAC-SHA1"",oauth_version=""1.0"",oauth_signature=""tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D"""
    

    当然,如果您使用that Java applet,请确保您已将时间设置为尽可能接近正确时间,指定您的 OAuth 凭据,并在将输出值替换为上面的命令行。

    Method: GET
    URI Scheme: https
    Host Name: userstream.twitter.com
    Port: 443
    Request Path: /2/user.json
    Parameters: [remove all]
    

    在标题输出中请注意,您必须手动将领域更改为 Twitter API,但所有其他输出值都应正确。

    此外,answer 有很多 C++ Twitter 库可供您尝试,尽管列出的 Twitter 文档的链接已过期 -- here's the latest

    【讨论】:

    • 感谢您的回答。我认为它有效,我不再收到未经授权的错误。但是,我也没有得到数据。当我发出命令时,它会运行大约 3 秒然后终止,让我回到提示符。这应该发生吗?如何获取数据?
    • 更新:所以我用 wget 试了一下,我得到了 --2011-06-13 14:08:31-- userstream.twitter.com/2/user.json Resolving userstream.twitter.com... 199.59.148.139 连接到userstream.twitter.com|199.59.148.139|:443... 已连接。已发送 HTTP 请求,等待响应... 500 内部服务器错误 2011-06-13 14:08:33 错误 500:内部服务器错误。我的请求格式不正确还是 API 已关闭?您的示例也给出了 500。
    • dev.twitter.com/status 显示一切看起来都不错,但我认为我只看到了 400 的状态,而 Twitter 的前进方向是报告所有 500,所以我认为这是 Twitter 的问题结尾。可能与今天发生的新西兰地震有关。
    • 有趣的是刚刚发生的事情。但是,我现在也在运行 TweetDeck,它使用用户流并且工作正常。但是自从 twitter 收购了 TweetDeck,如果他们有一个单独的服务器也不会奇怪......
    猜你喜欢
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    相关资源
    最近更新 更多