Как сделать вызов API для viralheat при отправке, а затем проанализировать и сохранить ответ JSON? - PullRequest
1 голос
/ 31 августа 2011

Я хочу отправить запрос через API Viralheat в методе обновления моего контроллера, чтобы, когда пользователь нажимал кнопку отправки, действие завершалось и выполнялся вызов API.Я хочу отправить на http://www.viralheat.com/api/sentiment/review.json?text=i&do&not&like&this&api_key=[* ваш ключ API *]

Это вернет JSON в формате:

{"mood":"negative","prob":0.773171679917001,"text":"i do not like this"}

Возможно ли одновременно выполнить вызов APIвыполнение метода контроллера и как бы я обработал ответ JSON?Какой метод контроллера я бы использовал?

В конечном итоге я бы хотел сохранить настроение ответа для моего столбца настроений в таблице BrandUsers.Submit находится в main.html.erb, который затем использует метод обновления.

Controller

def update
  @brand = Brand.find(params[:id])
  current_user.tag(@brand, :with => params[:brand][:tag_list], :on => :tags)
  if @brand.update_attributes(params[:brand])
    redirect_to :root, :notice  => "Brand tagged."
  else
    render :action => 'edit'
  end
end

def main
  @brands = Brand.all
  if current_user
    @brand = current_user.brands.not_tagged_by_user(current_user).order("RANDOM()").first
end

1 Ответ

2 голосов
/ 02 сентября 2011

Установив гем wrest, вы можете сделать что-то вроде

params[:api_key] = "your key"

url = "http://www.viralheat.com/api/sentiment/review.json"

response = url.to_uri.get(params).deserialize

response, содержащее json, уже превращенный в хешТаким образом, вы можете получить доступ к настроению с

response[:mood]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...