我正在开展个人项目,只是为了让我的手弄脏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签名。”但我不明白如何使用签名来授权请求(如果这是实际问题)
答案 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}