Module: EbayAPI
- Included in:
- OmniAuth::Strategies::Ebay
- Defined in:
- lib/ebay_api.rb
Defined Under Namespace
Classes: EbayApiError
Constant Summary collapse
- EBAY_PRODUCTION_LOGIN_URL =
"https://signin.ebay.com/ws/eBayISAPI.dll"
- EBAY_SANDBOX_LOGIN_URL =
"https://signin.sandbox.ebay.com/ws/eBayISAPI.dll"
- EBAY_PRODUCTION_XML_API_URL =
"https://api.ebay.com/ws/api.dll"
- EBAY_SANDBOX_XML_API_URL =
"https://api.sandbox.ebay.com/ws/api.dll"
- X_EBAY_API_REQUEST_CONTENT_TYPE =
'text/xml'
- X_EBAY_API_COMPATIBILITY_LEVEL =
'675'
- X_EBAY_API_GETSESSIONID_CALL_NAME =
'GetSessionID'
- X_EBAY_API_FETCHAUTHTOKEN_CALL_NAME =
'FetchToken'
- X_EBAY_API_GETUSER_CALL_NAME =
'GetUser'
Instance Method Summary collapse
- #api_url ⇒ Object
- #ebay_login_url(session_id, ruparams = {}) ⇒ Object
- #generate_session_id ⇒ Object
- #get_auth_token(username, secret_id) ⇒ Object
- #get_user_info(username, auth_token) ⇒ Object
- #login_url ⇒ Object
- #sandbox? ⇒ Boolean
Instance Method Details
#api_url ⇒ Object
32 33 34 35 |
# File 'lib/ebay_api.rb', line 32 def api_url return EBAY_SANDBOX_XML_API_URL if sandbox? EBAY_PRODUCTION_XML_API_URL end |
#ebay_login_url(session_id, ruparams = {}) ⇒ Object
105 106 107 108 109 110 111 112 113 |
# File 'lib/ebay_api.rb', line 105 def ebay_login_url(session_id, ruparams={}) url = "#{login_url}?#{.auth_type}&runame=#{.runame}&#{session_id_field_name}=#{URI.escape(session_id).gsub('+', '%2B')}" ruparams[:internal_return_to] = internal_return_to if internal_return_to ruparams[:sid] = session_id url << "&ruparams=#{ruparams.to_query.gsub("=", "%3D").gsub("&", "%26")}" unless ruparams.empty? url end |
#generate_session_id ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/ebay_api.rb', line 43 def generate_session_id request = %Q( <?xml version="1.0" encoding="utf-8"?> <GetSessionIDRequest xmlns="urn:ebay:apis:eBLBaseComponents"> <RuName>#{.runame}</RuName> </GetSessionIDRequest> ) parsed_response, response = api(X_EBAY_API_GETSESSIONID_CALL_NAME, request) session_id = parsed_response && parsed_response["GetSessionIDResponse"] && parsed_response["GetSessionIDResponse"]["SessionID"] if (!session_id) raise EbayApiError.new("Failed to generate session id", request, response) end session_id end |
#get_auth_token(username, secret_id) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/ebay_api.rb', line 61 def get_auth_token(username, secret_id) request = %Q( <?xml version="1.0" encoding="utf-8"?> <FetchTokenRequest xmlns="urn:ebay:apis:eBLBaseComponents"> <RequesterCredentials> <Username>#{username}</Username> </RequesterCredentials> <SecretID>#{secret_id.gsub(' ', '+')}</SecretID> </FetchTokenRequest> ) parsed_response, response = api(X_EBAY_API_FETCHAUTHTOKEN_CALL_NAME, request) token = parsed_response && parsed_response["FetchTokenResponse"] && parsed_response["FetchTokenResponse"]["eBayAuthToken"] if (!token) raise EbayApiError.new("Failed to retrieve auth token", request, response) end token end |
#get_user_info(username, auth_token) ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/ebay_api.rb', line 82 def get_user_info(username, auth_token) request = %Q( <?xml version="1.0" encoding="utf-8"?> <GetUserRequest xmlns="urn:ebay:apis:eBLBaseComponents"> <DetailLevel>ReturnAll</DetailLevel> <UserID>#{username}</UserID> <RequesterCredentials> <eBayAuthToken>#{auth_token}</eBayAuthToken> </RequesterCredentials> <WarningLevel>High</WarningLevel> </GetUserRequest> ) parsed_response, response = api(X_EBAY_API_GETUSER_CALL_NAME, request) user = parsed_response && parsed_response["GetUserResponse"] && parsed_response["GetUserResponse"]["User"] if (!user) raise EbayApiError.new("Failed to retrieve user info", request, response) end user end |
#login_url ⇒ Object
27 28 29 30 |
# File 'lib/ebay_api.rb', line 27 def login_url return EBAY_SANDBOX_LOGIN_URL if sandbox? EBAY_PRODUCTION_LOGIN_URL end |
#sandbox? ⇒ Boolean
23 24 25 |
# File 'lib/ebay_api.rb', line 23 def sandbox? .environment == :sandbox end |