0

我正在尝试使用 Faraday Gem 从 Exact Online API 访问数据,它返回的状态"401"意味着在我登录之前无权访问该链接,但我已经通过身份验证并且我在另一个页面中成功登录。

如果我尝试通过浏览器 URL 栏单独访问该链接,我可以看到数据。

这是我的控制器

 def example1
    @exact_conn = Faraday.new(:url => 'https://start.exactonline.nl') do |data|
      data.request :url_encoded
      data.response :logger
      data.adapter Faraday.default_adapter
    end

   data = @exact_conn.get("/api/v1/{division}/salesinvoice/SalesInvoices"
   @received_data = data.status
  end

我的观点

<h1>Received Data</h1>
<%= @received_data %>

我该如何解决这个问题?
或者我可以使用他们的任何其他选项来直接访问该数据而无需第二次进行身份验证?

4

1 回答 1

0

对于 API,每个请求通常都需要以在 HTTP 标头中传递的令牌的形式进行身份验证。如果这就是这个 API 的工作方式,您可以尝试以下操作:

@exact_conn.get do |req|
  req.url('/api/v1/{division}/salesinvoice/SalesInvoices')
  req.headers['Authorization'] = "Token token=#{your_token_here}"
end
于 2015-12-09T12:41:14.360 回答