【问题标题】:Storing API data from requests in Rails App?在 Rails App 中存储来自请求的 API 数据?
【发布时间】:2012-05-16 00:46:08
【问题描述】:

我想向 Twitter、Facebook 等一系列网站的 API 发出请求,并将结果存储在我的数据库中。

Twitter 给出的示例请求在这里: https://api.twitter.com/1/users/show.json?screen_name=TwitterAPI&include_entities=true

如何从我的 Rails 3 应用程序发出请求然后存储数据?我不一定需要所有数据,在这种情况下,我最感兴趣的是关注者。

非常感谢。

编辑:

我尝试将此添加到我的艺术家控制器的显示方法中:

require 'open-uri'
require 'json'
result = JSON.parse(open("https://api.twitter.com/1/users/show.json?screen_name=thesubways&include_entities=true").read)

parsed_json = ActiveSupport::JSON.decode(result)
@results = parsed_json["followers_count"]

【问题讨论】:

  • 还没有!当我尝试找到一个很好的指南来做这件事的时候,还有很多其他的东西要编码。您是否也在寻找或您有一些指示?
  • 所以你在@result 中有followers_count?此操作是否有效或您会遇到一些错误?接下来你需要做什么?
  • 我想我必须先解析然后提取关注者数量;这就是为什么我添加了最后两行,但这些会产生“无法将哈希转换为字符串”错误。
  • 我也尝试用@result = result["followers_count"] 替换最后两行,然后我尝试用<%= @result %> 在我的显示视图中显示它,但没有任何反应?
  • 你不应该使用 ActiveSupport::JSON.decode ,因为你已经有有效的 ruby​​ 哈希

标签: ruby-on-rails ruby-on-rails-3 twitter


【解决方案1】:

至于开始......

require 'open-uri'
require 'json'
result = JSON.parse(open("https://api.twitter.com/1/users/show.json?screen_name=TwitterAPI&include_entities=true").read)
# now you have result["followers_count"] ... and can use it to store with AR object or raw sql query

你也必须在你的 Rails 项目中使用数据库,但首先你应该阅读官方指南 http://guides.rubyonrails.org/getting_started.html

【讨论】:

  • 谢谢。我可以让它在 Rails 控制台中工作,但我不确定在哪里或如何将它合并到我的应用程序中,以便我可以在我的视图中显示结果(或单个实体,如“followers_count”)并能够保存到我的数据库。如果有人可以提供帮助或提供指向优秀教程的链接,我们将不胜感激。
  • 你应该首先阅读官方指南,我更新了我的答案
  • 我有,也许我只是太厚了?不过感谢您的帮助。
  • 如果你尝试了一些东西,我可以帮助你并且可以添加你的源代码。
猜你喜欢
  • 2015-09-07
  • 2021-12-15
  • 1970-01-01
  • 2014-01-18
  • 1970-01-01
  • 2021-01-12
  • 1970-01-01
相关资源
最近更新 更多