module OauthHeader

OauthHeader.get_header(key, secret)

Constants

VERSION

Public Class Methods

generate_token(size) click to toggle source
# File lib/oauth_header.rb, line 34
def self.generate_token(size)
  Base64.encode64(OpenSSL::Random.random_bytes(size)).gsub(/\W/, '')
end
get_header(key, secret, nonce_length=8, method='GET', url='', token='', grant_type='') click to toggle source
# File lib/oauth_header.rb, line 9
def self.get_header(key, secret, nonce_length=8, method='GET', url='', token='', grant_type='')
  begin
    params = params_format(key, nonce_length)
    signature_string_maker = signature_string_maker(method, url, params)
    signing_key = secret + '&' + token
    params['oauth_signature'] = url_encoding(ssl_digestive_encoded(signing_key, signature_string_maker))
    params['oauth_consumer_key'] = key
    header_string = header(params)
  rescue
    header_string = ''
  end
  header_string
end
header(params) click to toggle source
# File lib/oauth_header.rb, line 53
def self.header(params)
  header = "OAuth "
  params.each do |k, v|
    header = header + k +'='+ "'#{v}',"
  end
  header.slice(0..-2)
end
params_format(key, nonce_length) click to toggle source
# File lib/oauth_header.rb, line 23
def self.params_format(key, nonce_length)
  params = {
    'oauth_consumer_key' => key,
    'oauth_nonce' => generate_token(nonce_length),
    'oauth_signature_method' => 'HMAC-SHA1',
    'oauth_timestamp' => Time.now.getutc.to_i.to_s,
    'oauth_version' => '1.0'
  }
  return params
end
signature_string_maker(method, uri, params) click to toggle source
# File lib/oauth_header.rb, line 38
def self.signature_string_maker(method, uri, params)
  encoded_params = params.sort.collect{ |k, v| url_encoding("#{k}=#{v}") }.join('%26')
  method + '&' + url_encoding(uri) + '&' + encoded_params
end
ssl_digestive_encoded(key, base_string) click to toggle source
# File lib/oauth_header.rb, line 43
def self.ssl_digestive_encoded(key, base_string)
  digest = OpenSSL::Digest.new('sha1')
  ssl_digest = OpenSSL::HMAC.digest(digest, key, base_string)
  Base64.encode64(ssl_digest).chomp.gsub(/\n/, '')
end
url_encoding(string) click to toggle source
# File lib/oauth_header.rb, line 49
def self.url_encoding(string)
  CGI::escape(string)
end