我已经被这个问题困扰了一段时间了。有谁知道如何使用 OAuth 验证 Twitter Streaming API 请求?截至目前,我正在通过基本身份验证进行身份验证,并且我想完全切换到 OAuth。另外,如果有帮助的话,我正在使用 Ruby on Rails。
谢谢
最佳答案
通过 OAuth 连接到 Twitter Streaming API 的方式与通过 REST API 连接的方式非常相似。假设您已经协商了访问 token ,则可以使用与 REST 请求相同的签名算法来签名并发出请求。对于 Streaming API,最好使用基于 header 的 OAuth,而不是基于查询字符串的 OAuth。
以下是针对示例端点的基于 OAuth 的签名请求的示例:
获取http://stream.twitter.com/1/statuses/sample.json
签名基本字符串示例:
GET&http%3A%2F%2Fstream.twitter.com%2Fstatuses%2Fsample.json&oauth_consumer_key%3Dri8JxYK2ddwSV5xIUfNNvQ%26oauth_nonce%3DUJb0f3nHhFQkpkWkJzxnFT65xX1TZeuGjww6Q2XWs4%26oauth_signature_method %3DHMAC-SHA1%26oauth_timestamp%3D1306947138%26oauth_token%3D819797-torCkTs0XK7H2Y2i1ee5iofqkMC4p7aayeEXRTmlw%26oauth_version%3D1.0
签名后的授权 header :
授权:OAuth oauth_consumer_key="ri8JxYK2ddwSV5xIUfNNvQ"、oauth_nonce="UJb0f3nHhFQkpkWkJzxnFT65xX1TZeuGjww6Q2XWs4"、oauth_signature="bN14zlBIdCZCSl9%2B8UV8dB2VWjI%3D"、o auth_signature_method =“HMAC-SHA1”,oauth_timestamp =“1306947138”,oauth_token =“819797-torCkTs0XK7H2Y2i1ee5iofqkMC4p7aayeEXRTmlw”, oauth_version="1.0"
Matt Harris 有一些 PHP 示例代码,演示通过 OAuth 连接到流 API:https://github.com/themattharris/tmhOAuth/blob/master/examples/streaming.php
关于ruby-on-rails - Twitter Streaming API 与 OAuth?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6204351/