Заголовок авторизации Фарадея

Я пытаюсь сделать запрос к Spingo API. Я сделал успешный запрос с помощью Curl, но пытаюсь использовать драгоценный камень Фарадея.

Успешный запрос curl выглядит так:

curl -v --url "calendarapi.spingo.com/v1/events?sections=42336"  --header 'Authorization: SpingoAPI token="my-api-key"'

Первоначально я попытался использовать адаптер по умолчанию net-http. Затем я переключился на адаптер Typheous, потому что net-http использовал мою схему SpingoAPI в заголовке авторизации. Это заставило его прочитать Spingoapi. Теперь мой запрос выглядит так:

  def make_request
      conn = Faraday.new(base_url) do |f|
          f.params['sections'] = '42336'
          f.adapter :typhoeus
          f.use Faraday::Response::Logger
      end
      conn.authorization(:SpingoAPI, token: api_key)
      conn.get
  end

Переключение на Typheous позволило чему-то вернуться (я ничего не получал от net-http) Итак, мой ответ выглядит следующим образом.

ETHON: performed EASY effective_url=url
sections=42336 response_code=200 return_code=ok total_time=0.844381
I, [2015-08-05T11:16:06.575611 #22692]  INFO -- : get http://www.calendarapi.spingo.com/v1/events?sections=42336
D, [2015-08-05T11:16:06.575842 #22692] DEBUG -- request: User-Agent: "Faraday v0.9.1"

Authorization: "SpingoAPI token=\"my-token\""
I, [2015-08-05T11:16:06.576081 #22692]  INFO -- Status: 200
D, [2015-08-05T11:16:06.576230 #22692] DEBUG -- response: Content-Type: "text/html; charset=utf-8"
Date: "Wed, 05 Aug 2015 17:16:03 GMT"
Server: "nginx/1.2.9"
Set-Cookie: "VisitorID=GsPJ8NLBiP; expires=Tue, 03-Nov-2015 17:16:03 GMT"
X-Powered-By: "PHP/5.3.10-1ubuntu3.11"
Content-Length: "152"
Connection: "keep-alive"

Это заставляет меня думать, что я не авторизован, однако у меня нет идей, как передать авторизацию по-другому.

Любая помощь будет принята с благодарностью.


person Aaron Wortham    schedule 05.08.2015    source источник
comment
Что ж, глупый ответ, но то, что заставило его работать, было удаление www с базового URL-адреса, который у меня был. По-видимому, домен не был настроен на его прием с или без.   -  person Aaron Wortham    schedule 05.08.2015


Ответы (1)


попробуй это :

# set variables
base_url = "calendarapi.spingo.com"
url = "/v1/events"
token = "SpingoAPI token='my-api-key'"
params = {:sections => 42336}


# init connection object
connection = Faraday.new(:url => base_url) do |c|
   c.use Faraday::Request::UrlEncoded
   c.use Faraday::Response::Logger
   c.use Faraday::Adapter::NetHttp
end

# send request
response = connection.get url, params do |request|
  request.headers["Authorization"] = token
end
person Serhan    schedule 02.08.2018