Advertisement
lexquarkie

amazeprice

Oct 21st, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.16 KB | None | 0 0
  1. require 'vacuum'
  2.  
  3. ACCESS_IDENTIFIER = ''
  4. SECRET_IDENTIFIER = ''
  5.  
  6. def aws_escape(s)
  7.   s.gsub(/[^A-Za-z0-9_.~-]/) { |c| '%' + c.ord.to_s(16).upcase }
  8. end
  9.  
  10. def signing_logic(params)
  11.   amazon_endpoint= "webservices.amazon.in"
  12.   amazon_path = "/onca/xml"
  13.  
  14.   signing_params = {
  15.     :AWSAccessKeyId => ACCESS_IDENTIFIER,
  16.     :Timestamp => Time.now.gmtime.iso8601
  17.   }
  18.   params.merge!(signing_params)
  19.   canonical_querystring = params.sort.collect do |key, value|
  20.     [aws_escape(key.to_s), aws_escape(value.to_s)].join('=')
  21.   end.join('&')
  22.   string_to_sign = "GET\n#{amazon_endpoint}\n#{amazon_path}\n#{canonical_querystring}"
  23.  
  24.   hmac = HMAC::SHA256.new(SECRET_IDENTIFIER)
  25.   hmac.update(string_to_sign)
  26.   signature = Base64.encode64(hmac.digest).chomp
  27.  
  28.   params[:Signature] = signature
  29.   querystring = params.sort.collect do |key, value|
  30.     [aws_escape(key.to_s), aws_escape(value.to_s)].join('=')
  31.   end.join('&')
  32.  
  33.   signed_url = URI("http://#{amazon_endpoint}#{amazon_path}?#{querystring}")
  34. end
  35.  
  36.  
  37. request = Vacuum::Request.new('US')
  38.  
  39. request.associate_tag = 'tag'
  40.  
  41.  
  42. response = request.browse_node_lookup(
  43.   query: {
  44.     'BrowseNodeId' => 123
  45.   }
  46. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement