Class: SocialCount::FacebookUser

Inherits:
ApiBase
  • Object
show all
Defined in:
lib/social_count/facebook_user.rb

Constant Summary collapse

DOMAIN =
"https://graph.facebook.com"

Instance Attribute Summary

Attributes inherited from ApiBase

#name

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ApiBase

get_http_response, #initialize

Constructor Details

This class inherits a constructor from SocialCount::ApiBase

Class Method Details

.access_tokenObject



43
44
45
46
47
48
49
50
51
# File 'lib/social_count/facebook_user.rb', line 43

def access_token
  return @access_token unless @access_token.nil?
  response = get_http_response(access_url)
  unless response.is_a?(Net::HTTPOK)
    response = JSON.parse(response.body)
    raise SocialCount::FacebookApiError.new("Facebook API returned the following error: #{response["error"]["message"]}", response["error"]["code"])
  end
  @access_token = response.body.split("access_token=")[1]
end

Instance Method Details

#follower_countObject



22
23
24
25
# File 'lib/social_count/facebook_user.rb', line 22

def follower_count
  count = run_query(:subscriber)
  count.to_i.zero? ? nil : count
end

#friend_countObject



19
20
21
# File 'lib/social_count/facebook_user.rb', line 19

def friend_count
  run_query(:friend)
end

#idObject



15
16
17
18
# File 'lib/social_count/facebook_user.rb', line 15

def id
  return unless valid?
  @id ||= user.identifier.to_i
end

#userObject



11
12
13
14
# File 'lib/social_count/facebook_user.rb', line 11

def user
  return unless valid?
  @user ||= FbGraph::User.fetch(name, :access_token => URI.escape(self.class.access_token))
end

#valid?Boolean

Returns:

  • (Boolean)


7
8
9
10
# File 'lib/social_count/facebook_user.rb', line 7

def valid?
  return @valid unless @valid.nil?
  @valid = self.class.get_http_response("#{DOMAIN}/#{name}").is_a?(Net::HTTPOK)
end