def header(oauth, uri, params = {}, http_method = :get)
oauth = oauth.dup
oauth[:signature_method] ||= "HMAC-SHA1"
oauth[:version] ||= "1.0"
oauth[:nonce] ||= Base64.encode64(OpenSSL::Random.random_bytes(32)).gsub(/\W/, '')
oauth[:timestamp] ||= Time.now.to_i
oauth[:token] ||= oauth.delete(:access_key)
oauth[:token_secret] ||= oauth.delete(:access_secret)
sig_params = oauth_params(oauth)
sig_params[:oauth_signature] = signature(oauth, uri, sig_params.merge(params), http_method)
sorted_sig_params = sig_params.sort_by{|k,v| [k.to_s, v.to_s] }
authorization_params = sorted_sig_params.map {|key, value|
[escape(key), "\"#{escape(value)}\""].join("=")
}.join(", ")
%{OAuth } + authorization_params
end