class TwitterRequestHeaders

Constants

OAUTH_CIPHER
OAUTH_VERSION
TWITTER_API

Attributes

consumer_key[R]
consumer_secret[R]
oauth_cipher[R]
oauth_version[R]
twitter_api[R]

Public Class Methods

configure(consumer_key, consumer_secret, oauth_version = nil, oauth_cipher = nil, twitter_api = nil) click to toggle source

Define Twitter application credentials and options to be accessible from rest of all library.

@param consumer_key [String] Application ID/Key @param consumer_secret [String] Application Secret @param oauth_version [String, nil] OAuth version used by Twitter. See dashboard. @param oauth_cipher [String, nil] OAuth chipher used by Twitter. See API docs. @param twitter_api [String, nil] Twitter API address. See dashboard. @return [true]

# File lib/twitter_request_headers.rb, line 22
def configure(consumer_key, consumer_secret, oauth_version = nil, oauth_cipher = nil, twitter_api = nil)
  @consumer_key = consumer_key
  @consumer_secret = consumer_secret

  @oauth_version = oauth_version || OAUTH_VERSION
  @oauth_cipher = oauth_cipher || OAUTH_CIPHER
  @twitter_api = twitter_api || TWITTER_API

  @@configured = true
end
new(oauth_token, oauth_secret, request_verb, request_path, request_params = nil) click to toggle source

Creates new session.

@param oauth_token [String] Twitter OAuth Key @param oauth_secret [String] Twitter OAuth Secret @param request_verb [String] HTTP verb: GET, POST, e.g. @param request_path [String] HTTP request path. Like /users/blah/blah @param request_params [Hash, nil] HTTP request query. Like {user_id: 111222333}

# File lib/twitter_request_headers.rb, line 42
def initialize(oauth_token, oauth_secret, request_verb, request_path, request_params = nil)
  unless @@configured
    fail StandardError, "Call #{self.class}.configure first!"
  end

  @oauth_token = oauth_token
  @oauth_secret = oauth_secret

  @request_verb = request_verb
  @request_path = request_path
  @request_params = request_params || {}

  @nonce = nonce
  @epochtime = epochtime
end

Public Instance Methods

header() click to toggle source

HTTP header of format: {'Authorization' => 'OAuth …'}

@return [Hash]

# File lib/twitter_request_headers.rb, line 63
def header
  signature = Signature.new(
    @oauth_token,
    @oauth_secret,
    @request_verb,
    @request_path,
    @request_params,
    @nonce,
    @epochtime
  ).digest

  {
    Header.key => Header.new(@oauth_token, signature, @nonce, @epochtime).value
  }
end

Private Instance Methods

epochtime() click to toggle source

Current unixtime (seconds) @return [String] 1446639000

# File lib/twitter_request_headers.rb, line 88
def epochtime
  Time.now.to_i.to_s
end
nonce() click to toggle source
# File lib/twitter_request_headers.rb, line 81
def nonce
  SecureRandom.hex(16)
end