Method: XStreamly::Client#generateRequestData

Defined in:
lib/xstreamly.rb

#generateRequestData(trackParameter, consumerKey, consumerSecret, accessToken, accessTokenSecret) ⇒ Object



90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/xstreamly.rb', line 90

def generateRequestData(trackParameter,consumerKey,consumerSecret,accessToken,accessTokenSecret)
  #generate a random nonce
  nonce  =(0...10).map{65.+(rand(25)).chr}.join
  timestamp = (Time.now.to_i).to_s
  track = CGI.escape(trackParameter)
  
  base = "POST&https%3A%2F%2Fstream.twitter.com%2F1%2Fstatuses%2Ffilter.json&" +
    "oauth_consumer_key%3D" + consumerKey +
    "%26oauth_nonce%3D"+nonce +
    "%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D" + timestamp +
    "%26oauth_token%3D" + accessToken +
    "%26oauth_version%3D1.0"+ 
    "%26track%3D" +CGI.escape(track)
    
  key = consumerSecret +'&'+CGI.escape(accessTokenSecret);
  
  digest  = OpenSSL::Digest::Digest.new('sha1')
  signature=CGI.escape(Base64.encode64(OpenSSL::HMAC.digest(digest,key,base)).strip)
  
  requestData = "oauth_signature=" + signature +
    "&oauth_token=" + accessToken +
    "&track=" + track +
    "&oauth_consumer_key=" + consumerKey +
    "&oauth_signature_method=HMAC-SHA1&oauth_version=1.0" +
    "&oauth_nonce=" + nonce +
    "&oauth_timestamp=" + timestamp
  
  return requestData
end