You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ruby on Rails控制器中执行指定的CURL请求?

在Ruby on Rails控制器中执行Facebook Graph API的POST请求

嘿,我来帮你把这条curl请求转换成Rails控制器里可执行的代码!这条请求是调用Facebook Graph API触发内容抓取,下面给你两种实现方式,一种用Rails内置工具(无需额外依赖),另一种用更简洁的第三方gem。

方法一:使用Rails内置的Net::HTTP

这是最原生的实现方式,不需要安装额外依赖,直接在控制器里编写即可:

require 'net/http'
require 'uri'
require 'json'

class FacebookScrapeController < ApplicationController
  def trigger_scrape
    # 替换为你的实际参数
    object_identifier = "你的object-url或object-id"
    access_token = "你的access token"

    # 构建请求地址
    uri = URI.parse("https://graph.facebook.com")

    # 创建POST请求并设置表单数据
    request = Net::HTTP::Post.new(uri)
    request.set_form_data(
      "id" => object_identifier,
      "scrape" => "true",
      "access_token" => access_token
    )

    # 发送请求并处理响应
    response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
      http.request(request)
    end

    # 根据响应状态处理结果
    if response.is_a?(Net::HTTPSuccess)
      result = JSON.parse(response.body)
      render json: result, status: :ok
    else
      render json: { error: "请求失败", details: response.body }, status: :bad_request
    end
  end
end

方法二:使用HTTParty(更简洁)

如果觉得原生代码有点繁琐,可以用HTTParty gem简化开发流程:

  1. 先在Gemfile中添加依赖:
gem 'httparty'

然后运行bundle install完成安装。

  1. 控制器中的实现代码:
require 'httparty'

class FacebookScrapeController < ApplicationController
  def trigger_scrape
    # 替换为你的实际参数
    object_identifier = "你的object-url或object-id"
    access_token = "你的access token"

    # 发送POST请求
    response = HTTParty.post(
      "https://graph.facebook.com",
      body: {
        id: object_identifier,
        scrape: "true",
        access_token: access_token
      }
    )

    # 处理响应
    if response.success?
      render json: response.parsed_response, status: :ok
    else
      render json: { error: "请求失败", details: response.body }, status: :bad_request
    end
  end
end

小提示

  • 敏感信息(比如access_token)不要硬编码,建议存到Rails环境变量中,用ENV['FACEBOOK_ACCESS_TOKEN']调用
  • 可以根据业务需求调整响应逻辑,比如返回视图、跳转页面等

内容的提问来源于stack exchange,提问作者Antônio Abrão

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:50:14