在 Rails 3 应用程序中,我使用第三方 API 来保存网络摄像头视频。当视频保存到他们的服务器时,他们会提供一个选项,向您发送回调到您指定的网址。从他们的网站:
回调
回调适用于希望在 Framey 服务器上处理完视频时收到通知的高级用户。如果您在帐户设置中选择接收回调,一旦转换完成,Framey 就会将视频和缩略图 URL 发布到您的服务器。
以下是我们发布到您的服务器的数据示例:
"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。
预先感谢您的帮助,如果您需要更多详细信息,请告诉我。
最佳答案
在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
关于ruby-on-rails-3 - 如何在 Rails 3 应用程序中处理 API 回调响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10527484/