我已经在 Twitter 上注册了我的移动应用程序 (Sencha Touch),并且我拥有访问 1.1 版 API 的适当密钥。现在我正在编写一个 Web 服务来将 JSON 提供回我的移动应用程序。这是我到目前为止基于 Twitter 在此页面上提供的 ruby 示例的内容。
require 'oauth'
class Twitter
def initialize
@consumer_key = "omitted"
@consumer_secret = "omitted"
@access_token = "omitted"
@access_token_secret = "omitted"
end
def pull_tweets(query)
authorized_token = prepare_access_token(@access_token, @access_token_secret)
response = authorized_token.request(:get, query)
end
private
def prepare_access_token(oauth_token, oauth_token_secret)
consumer = OAuth::Consumer.new(@consumer_key, @consumer_secret, { site: "https://api.twitter.com/", scheme: :header })
token_hash = { oauth_token: oauth_token, oauth_token_secret: oauth_token_secret }
access_token = OAuth::AccessToken.from_hash(consumer, token_hash)
return access_token
end
end
query = "https://api.twitter.com/1.1/statuses/home_timeline.json"
response = Twitter.new.pull_tweets(query)
p response
当我运行此代码时,我会得到#<Net::HTTPBadRequest 400 Bad Request readbody=true>
响应。在做了一些研究之后,我发现这可能是四件事之一。
- 我的身份验证详细信息错误
- 我受到速率限制
- Ruby 没有正确格式化查询字符串(更多细节)
- 我使用的查询是错误的
我不认为我受到速率限制,因为我从未设法得到回应,而且我不知道如何检查我是否正确验证。任何帮助深表感谢。