class Sensor::Actuator::FacebookRetrieval
Public Class Methods
new(time_range)
click to toggle source
# File lib/sensor/actuator/facebook_retrieval.rb, line 5 def initialize(time_range) @time_range = time_range end
Public Instance Methods
acquire()
click to toggle source
# File lib/sensor/actuator/facebook_retrieval.rb, line 9 def acquire results = graph.get_object("TheLaunchAcademy") likes = results["likes"] talking = results["talking_about_count"] posts = graph.get_object("TheLaunchAcademy/posts", since: format_date(@time_range.start_date), until: format_date(@time_range.end_date), limit: 200 ) post_likes = posts.inject(0) do |post_likes, post| if post["likes"] && post["likes"]["data"] post_likes += post["likes"]["data"].size else post_likes end end { facebook: { likes: likes, talking: talking, posts: posts.size, post_likes: post_likes } } end
Protected Instance Methods
access_token()
click to toggle source
# File lib/sensor/actuator/facebook_retrieval.rb, line 69 def access_token ENV['FACEBOOK_TOKEN'] end
api_key()
click to toggle source
# File lib/sensor/actuator/facebook_retrieval.rb, line 73 def api_key ENV['FACEBOOK_API_KEY'] end
format_date(date)
click to toggle source
# File lib/sensor/actuator/facebook_retrieval.rb, line 38 def format_date(date) date.strftime("%Y-%m-%d") end
graph()
click to toggle source
# File lib/sensor/actuator/facebook_retrieval.rb, line 42 def graph @graph ||= Koala::Facebook::API.new(access_token) end
oauth_url()
click to toggle source
# File lib/sensor/actuator/facebook_retrieval.rb, line 46 def oauth_url "https://www.facebook.com/dialog/oauth?" + "client_id=#{api_key}&client_secret=#{secret_key}" + "scope=manage_pages,read_insights&redirect_uri=#{redirect_uri}&" + "response_type=token" end
redirect_uri()
click to toggle source
# File lib/sensor/actuator/facebook_retrieval.rb, line 61 def redirect_uri ENV['FACEBOOK_REDIRECT_URI'] end
secret_key()
click to toggle source
# File lib/sensor/actuator/facebook_retrieval.rb, line 77 def secret_key ENV['FACEBOOK_SECRET_KEY'] end
short_lived_token()
click to toggle source
# File lib/sensor/actuator/facebook_retrieval.rb, line 65 def short_lived_token ENV['FACEBOOK_SHORT_LIVED_TOKEN'] end
token_exchange_url()
click to toggle source
# File lib/sensor/actuator/facebook_retrieval.rb, line 53 def token_exchange_url "https://www.facebook.com/oauth/access_token?" + "grant_type=fb_exchange_token&" + "client_id=#{api_key}&" + "client_secret=#{secret_key}&" + "fb_exchange_token=#{short_lived_token}" end