class SocialAuthority::Api
Attributes
access_id[R]
screen_names[R]
secret_key[R]
user_ids[R]
Public Class Methods
new(access_id, secret_key)
click to toggle source
# File lib/social_authority/api.rb, line 5 def initialize(access_id, secret_key) @access_id, @secret_key = access_id, secret_key end
Public Instance Methods
fetch(user_ids = [], screen_names = [])
click to toggle source
# File lib/social_authority/api.rb, line 9 def fetch(user_ids = [], screen_names = []) @user_ids, @screen_names = user_ids, screen_names uri = URI(generate_request_url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = uri.scheme == 'https' request = Net::HTTP::Get.new(uri.request_uri) response = http.request(request) if response.code == '200' JSON.parse(response.body)['_embedded'] else raise ResponseError, response.body end end
Private Instance Methods
generate_request_url()
click to toggle source
# File lib/social_authority/api.rb, line 26 def generate_request_url timestamp = Time.now.to_i + 500 url = 'https://api.followerwonk.com/social-authority' url << '?' url << "user_id=#{ user_ids.join(',') };" url << "screen_name=#{ screen_names.join(',') };" url << "AccessID=#{ access_id };" url << "Timestamp=#{ timestamp };" url << "Signature=#{ generate_signature(timestamp) }" url end
generate_signature(timestamp)
click to toggle source
# File lib/social_authority/api.rb, line 39 def generate_signature(timestamp) digest = OpenSSL::Digest.new('sha1') data = "#{ access_id }\n#{ timestamp }" CGI::escape(Base64.strict_encode64(OpenSSL::HMAC.digest(digest, secret_key, data))) end