2016-09-08 10 views
3

HTTParty를 사용하여 Eventbrite API에서 데이터를 가져옵니다."OpenURI :: HTTPError : 401 Unauthorized"with Rails, HTTParty, Paperclip

response = HTTParty.get("https://www.eventbriteapi.com/v3/events/search?token=#{Figaro.env.eventbrite_oauth_token}") 

내 개체에 이벤트 첨부 파일을 저장하려고합니다. (저는 이미지를 업로드하기 위해 클립 클립을 사용하고 있습니다).

@event.image = "https://img.evbuc.com/http%3A%2F%2Fcdn.evbuc.com%2Fimages%2F18699100%2F162201087004%2F1%2Foriginal.jpg?h=200&w=450&rect=0%2C194%2C2000%2C1000&s=67649c6c8e7ef66e409189bf08474203" 

하지만 오류 얻을 : 해결하는 방법에

"OpenURI::HTTPError: 401 Unauthorized" with Rails, HTTParty, and Paperclip."

어떤 아이디어?

+0

'# {Figaro.env.eventbrite_oauth_token} '의 값이 유효한 토큰인지 확인 했습니까? – Dharam

+0

예. 유효합니다. –

+0

나는'reply = HTTParty.get ("https://www.eventbriteapi.com/v3/events/search?token=#{Figaro.env.eventbrite_oauth_token}")을 아무런 문제없이 나 자신의 토큰으로 호출 할 수 있었다. . 이 전화가 올 때마다 오류가 발생합니까? – Dharam

답변

3

저는 Paper Clip의 최신 버전에서 알아 봤습니다. URL을 통해 애셋을 가져 오도록 Paperclip에 요청할 때 URI.parse에 URL 문자열을 래핑해야했습니다. 그래서 예를 들어

는 :

@event.image = URI.parse("https://img.evbuc.com/http%3A%2F%2Fcdn.evbuc.com%2Fimages%2F18699100%2F162201087004%2F1%2Foriginal.jpg?h=200&w=450&rect=0%2C194%2C2000%2C1000&s=67649c6c8e7ef66e409189bf08474203") 
0

나는 URI.parse에 URL을 포장하는 작업 이유를 종이 클립 코드로 보았다.

Paperclip은 다른 어댑터 클래스를 사용하여 다른 대상을 처리합니다.

URL을 처리하는 HttpUrlProxyAdapter에서 처리하는 URL이 a recent change이기 때문에 첨부가 실패한 이유가 있습니다. 이 변경으로 이미 인코딩 된 URL이있는 파일을 첨부 할 수 없습니다.

URL을 URI.parse로 감싸는 것은 첨부 파일이 URI 어댑터에 의해 처리되었는지 확인했습니다.