检索RoR中的Twitter用户头像

时间:2013-11-02 14:21:14

标签: ruby-on-rails json twitter avatar

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

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

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

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

我知道这可能是一个OAuth问题,但即使我一直在阅读它,我也会对如何正确使用它感到困惑。是否需要在每个用户的基础上进行OAuth批准舞蹈(最终是如何)或者我能够像在Twitter搜索结果中那样从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签名。”但我不明白如何使用签名来授权请求​​(如果这是实际问题)

1 个答案:

答案 0 :(得分:1)

你可以用这个版本的twitter gem做你想做的事。你正在使用一个版本的宝石< 4.8,基于您的配置选项,因此某些文档已针对版本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}