2012-10-28 2 views
0

저는 랙 + 옴니 어스 (사실 - 옴니 오스 - 이베이)를 사용하여 이베이를 통해 인증을 시도하고 있습니다. 나는 올바른 구성이 ("222"대신에 "111"의를 ... 실제 값이있는) :Omniauth 및 Rack 응용 프로그램을 어떻게 디버깅합니까?

NoMethodError at /auth/ebay 
    undefined method `[]' for nil:NilClass 
    file: ebay_api.rb location: generate_session_id line: 21 

#.... 
omniauth.error - <NoMethodError: undefined method `[]' for nil:NilClass> 
omniauth.error.strategy - #<OmniAuth::Strategies::Ebay> 
omniauth.error.type - "Failed to retrieve session id from ebay" 
omniauth.strategy - <OmniAuth::Strategies::Ebay> 
:

#config.rb 
use OmniAuth::Builder do 
    provider :ebay, "111", "222", "333", "4444", "0", "https://api.sandbox.ebay.com/wsapi" 
end 

내가 리터 ocalhost:9292/auth/ebay로 이동, 나는의 오류가 발생

내가 알고 싶은 것은 그것을 디버깅하는 방법이다. 특히 localhost:9292/auth/ebay의 경로는 Omniauth 을 자동으로 포함하기 때문에 내 애플리케이션에서 정의하지 않았기 때문에 나타납니다.

의견이 있으십니까?

답변

1

Omniauth ebay는 SOAP 버전과 달리 eBay API의 순수 XML 버전을 사용합니다. 귀하의 마지막 구성 값이 오류, ebay_api.rb에 따라 보조 노트로하지

https://api.sandbox.ebay.com/wsapi 

https://api.sandbox.ebay.com/ws/api.dll 

,해야한다, 당신은 설치 omniauth - 이베이 보석의 이전 버전을 갖고있는 것 같다. latest version에는 오류 검사가 더 많으므로 자세한 내용을 제공해야합니다.

+0

맞습니다. 이제 URL이 정확합니다. 하지만 최신 버전을 사용하고 방금 설치했습니다. –

+0

하지만 이제는 프로덕션 signIn url 인 https://signin.ebay.com/ws/eBayISAPI.dll로 리디렉션됩니다. 샌드 박스 URL을 사용하려면 어떻게해야합니까? - https://signin.sandbox.ebay.com/ws/eBayISAPI.dll? –

+0

아쉽게도이 값은 [ebay_api.rb] (https://github.com/TheGiftsProject/omniauth-ebay/blob/master/lib/ebay_api.rb)에 하드 코딩되어 있습니다. 로컬로 변경할 수 있습니다. 'EBAY_LOGIN_URL' –

관련 문제