class FaceGroup::FbApi

Service for all FB API calls

Constants

API_VER
FB_API_URL
FB_TOKEN_URL
FB_URL
GRAPH_QUERY
TOKEN_KEY

Public Class Methods

access_token() click to toggle source
# File lib/facegroup/fb_api.rb, line 20
def self.access_token
  return @access_token if @access_token

  access_token_response =
    HTTP.get(FB_TOKEN_URL,
             params: { client_id: config[:client_id],
                       client_secret: config[:client_secret],
                       grant_type: 'client_credentials' })
  @access_token = access_token_response.parse['access_token']
end
config() click to toggle source
# File lib/facegroup/fb_api.rb, line 35
def self.config
  return @config if @config
  @config = { client_id:     ENV['FB_CLIENT_ID'],
              client_secret: ENV['FB_CLIENT_SECRET'] }
end
config=(credentials) click to toggle source
# File lib/facegroup/fb_api.rb, line 31
def self.config=(credentials)
  @config ? @config.update(credentials) : @config = credentials
end
graphql_query(resource_id, resource_key) click to toggle source
# File lib/facegroup/fb_api.rb, line 49
def self.graphql_query(resource_id, resource_key)
  response = HTTP.get(
    fb_resource_url(resource_id),
    params: { fields: GRAPH_QUERY[resource_key],
              access_token: access_token }
  )
  JSON.load(response.to_s)
end
group_data(group_id) click to toggle source
# File lib/facegroup/fb_api.rb, line 41
def self.group_data(group_id)
  graphql_query(group_id, :group)
end
newest_group_postings(group_id) click to toggle source
# File lib/facegroup/fb_api.rb, line 58
def self.newest_group_postings(group_id)
  feed_response = HTTP.get(
    fb_resource_url(group_id) + '/feed',
    params: { access_token: access_token }
  )
  JSON.parse(feed_response)['data']
end
posting_data(posting_id) click to toggle source
# File lib/facegroup/fb_api.rb, line 45
def self.posting_data(posting_id)
  graphql_query(posting_id, :posting)
end

Private Class Methods

fb_resource_url(id) click to toggle source
# File lib/facegroup/fb_api.rb, line 68
def self.fb_resource_url(id)
  URI.join(FB_API_URL, id.to_s).to_s
end