Class: FacebookTopics::Api

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/facebook_topics/api.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attrs) ⇒ Api

Returns a new instance of Api.



9
10
11
12
13
14
# File 'lib/facebook_topics/api.rb', line 9

def initialize(attrs)
   @auth_token = attrs.delete(:auth_token)
  @api_version = attrs.delete(:api_version)

  self.class.default_params access_token: @auth_token
end

Instance Attribute Details

#api_versionObject

Returns the value of attribute api_version.



7
8
9
# File 'lib/facebook_topics/api.rb', line 7

def api_version
  @api_version
end

#auth_tokenObject

Returns the value of attribute auth_token.



7
8
9
# File 'lib/facebook_topics/api.rb', line 7

def auth_token
  @auth_token
end

Instance Method Details

#feeds(topic_id, fields = [], options = {}) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/facebook_topics/api.rb', line 40

def feeds(topic_id, fields = [], options = {})
  fields = ["ranked_posts"] + fields
       q = {fields: fields.flatten.uniq.join(',')}
       q.merge! options

  FeedCollection.new self.class.get("/#{api_version}/#{topic_id}", {query: q}).parsed_response
end

#insights(contains_all, date_range = nil, fields = []) ⇒ Object



51
52
53
54
# File 'lib/facebook_topics/api.rb', line 51

def insights(contains_all, date_range = nil, fields = [])
  q = {contains_all: [contains_all], fields: fields.flatten.uniq.join(',')}
  Insights.new self.class.get("/#{api_version}/topic_insights", {query: q}).parsed_response
end

#quick(topic, fields = [], options = {}) ⇒ Object



31
32
33
34
# File 'lib/facebook_topics/api.rb', line 31

def quick(topic, fields = [], options = {})
  topic_id = search(topic, fields).first.id
  feeds(topic_id, fields, options)
end

#search(query, fields = []) ⇒ Object



20
21
22
23
24
25
# File 'lib/facebook_topics/api.rb', line 20

def search(query, fields = [])
  q = {q: query, type: 'topic'}
  q.merge!(fields: fields.join(',')) unless fields.empty?

  TopicCollection.new self.class.get("/#{api_version}/search", {query: q})["data"]
end