1

我已经在 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 没有正确格式化查询字符串(更多细节
  • 我使用的查询是错误的

我不认为我受到速率限制,因为我从未设法得到回应,而且我不知道如何检查我是否正确验证。任何帮助深表感谢。

4

0 回答 0