0

我正在做一个个人项目,只是为了弄脏 RoR。我正在尝试做的是一个使用 Twitter gem 的非常简单的 twitter 搜索引擎。使用各种选项调用Twitter.search方法,我可以轻松实现此目标。我的问题是:

如何显示从搜索中检索到的每条推文的用户头像?

我设法获取了 json url 并对其进行了解析,但我收到了 Bad Authentication Data 消息:

{"errors"=>[{"message"=>"Bad Authentication data", "code"=>215}]}

我知道这可能是一个 OAuth 问题,但即使我一直在阅读它,我还是对如何正确使用它感到困惑。是否需要在每个用户的基础上(以及最终如何)进行 OAuth 批准舞蹈,或者我是否能够像从搜索中获取结果一样对 Twitter 仪表板中的值进行硬编码(这显然不需要为头像工作)?

我有这样的 twitter.rb 文件:

Twitter.configure do |config|
  config.consumer_key = 'key'
  config.consumer_secret = 'secret'
  config.oauth_token = 'token'
  config.oauth_token_secret = 'token-secret'
end

我认为从 * https://api.twitter.com/1.1/users/show.json?user_id= ...* 检索用户 json 会起作用,但我不知道如何获得授权。有很多类似的问题,但我仍然不明白如何解决这个问题。任何帮助将非常感激。

编辑:在与此相关的 twitter API 文档中,它说“使用此页面侧边栏中的 OAuth 工具来为此请求生成 OAuth 签名。 ”但我不明白如何使用签名来授权请求​​(如果是实际问题)

4

1 回答 1

1

你可以用这个版本的 twitter gem 做你想做的事。根据您的配置选项,您正在使用 < 4.8 的 gem 版本,因此某些文档已针对版本 5 进行了更新。请注意,此调用在版本 5 中已弃用,因此将来此代码将具有被改变。对于这个版本,我是这样做的:

控制器:

Twitter.configure do |config|
  config.consumer_key        = consumer_key
  config.consumer_secret     = consumer_secret
  config.oauth_token        = oauth_token
  config.oauth_token_secret = oauth_token_secret
end 

@twitter_search = Twitter.search(params[:search], :count => 10, :result_type => "recent")

视图(这是 haml 但 erb 或 slim 类似):

%ul
  = @twitter_search.results.map do |tweet| status.profile_image_url }
    %li
      .span2
        %img{:src => status.profile_image_url}
        #{status.screen_name}
      .span4
        #{status.text}
于 2013-11-02T17:15:25.140 回答