class Mogli::Authenticator
Attributes
callback_url[R]
client_id[R]
secret[R]
Public Class Methods
new(client_id,secret,callback_url)
click to toggle source
# File lib/mogli/authenticator.rb, line 8 def initialize(client_id,secret,callback_url) @client_id = client_id @secret = secret @callback_url = callback_url end
Public Instance Methods
access_token_url(code)
click to toggle source
# File lib/mogli/authenticator.rb, line 19 def access_token_url(code) "https://graph.facebook.com/oauth/access_token?client_id=#{client_id}&redirect_uri=#{CGI.escape(callback_url) unless callback_url.nil? || callback_url.empty?}&client_secret=#{secret}&code=#{CGI.escape(code)}" end
extend_access_token(oauth_token)
click to toggle source
# File lib/mogli/authenticator.rb, line 23 def extend_access_token(oauth_token) response = Mogli::Client.get("https://graph.facebook.com/oauth/access_token", :query=>{ :client_id=>@client_id, :client_secret => @secret, :grant_type => "fb_exchange_token", :fb_exchange_token=>oauth_token}) raise_exception_if_required(response) Hash[response.parsed_response.split("&").map {|a| a.split("=")}] end
get_access_token_for_application()
click to toggle source
# File lib/mogli/authenticator.rb, line 51 def get_access_token_for_application client = Mogli::Client.new response = client.class.post(client.api_path('oauth/access_token'), :body=> { :grant_type => 'client_credentials', :client_id => client_id, :client_secret => secret } ) raise_exception_if_required(response) response.parsed_response.split("=").last end
get_access_token_for_session_key(session_keys)
click to toggle source
# File lib/mogli/authenticator.rb, line 34 def get_access_token_for_session_key(session_keys) keystr = session_keys.is_a?(Array) ? session_keys.join(',') : session_keys client = Mogli::Client.new response = client.class.post(client.api_path("oauth/exchange_sessions"), :body => { :type => 'client_cred', :client_id => client_id, :client_secret => secret, :sessions => keystr } ) raise_exception_if_required(response) tokens = response.parsed_response session_keys.is_a?(Array) ? tokens : tokens.first end
raise_exception_if_required(response)
click to toggle source
# File lib/mogli/authenticator.rb, line 64 def raise_exception_if_required(response) raise Mogli::Client::HTTPException, response.body if response.code != 200 end