如何在Rails 3应用程序中处理API回调响应

时间:2012-05-10 04:25:16

标签: ruby-on-rails-3 json api post callback

在rails 3应用中,我正在使用第三方API来保存网络摄像头视频。当视频保存到他们的服务器时,他们会给你一个选项,让你回调你指定的网址。从他们的网站:


回调

回调适用于希望在视频在Framey服务器上完成处理时收到通知的高级用户。如果您选择在帐户设置中接收回调,Framey会在转换完成后将视频和缩略图网址发布到您的服务器。

以下是我们发布到您服务器的数据示例:

"video": {  
  "name": "ecf7c330-549c-012e-9d34-7c6d628c53d4",        
  "filesize": 123456,       
  "duration": 15.62,        
  "state": "uploaded",              
  "views": 0,    
  "data": {
    "my_user_id": 1,
    "video_title": "Contest Submission"
  },
  "flv_url": "http://framey.com/videos/source/ecf7c330-549c-012e-9d34-7c6d628c53d4.flv",
  "mp4_url": "http://framey.com/videos/source/ecf7c330-549c-012e-9d34-7c6d628c53d4.mp4",
  "large_thumbnail_url": "http://framey.com/thumbnails/large/ecf7c330-549c-012e-9d34-7c6d628c53d4.jpg",
  "medium_thumbnail_url": "http://framey.com/thumbnails/medium/ecf7c330-549c-012e-9d34-7c6d628c53d4.jpg",
  "small_thumbnail_url": "http://framey.com/thumbnails/small/ecf7c330-549c-012e-9d34-7c6d628c53d4.jpg"
}

我正在努力理解如何处理这个问题,但我想我可以从你这些好人那里得到正确的指导。他们指定一个POST方法,所以我必须设置一个路由。在我的config / routes.rb文件中我有

post "framey/callback/"

在我的app / controllers / framey_controller.rb文件中有这样的:

class FrameyController < ApplicationController
  def callback
  end
end

我是否需要做类似

的事情
render :json =>???? 

我熟悉通过HTML表单和/或ajax使用POST。我不知道如何抓住他们寄给我的JSON。

预先感谢您的帮助,如果您需要更多详细信息,请与我们联系。

1 个答案:

答案 0 :(得分:2)

在app / controllers / framey_controller.rb

class FrameyController < ApplicationController
  def callback
    v = Video.new
    v.name = params[:video][:name]
    v.user_id = params[:video][:data][:user_id]
    v.question_id = params[:video][:data][:question_id]
    v.save
  end
end