require 'bundler/setup' require 'sinatra/base' require 'omniauth-facebook' SCOPE = 'email,read_stream' class App < Sinatra::Base # turn off sinatra default X-Frame-Options for FB canvas set :protection, :except => :frame_options # server-side flow get '/' do # NOTE: you would just hit this endpoint directly from the browser # in a real app. the redirect is just here to setup the root # path in this example sinatra app. redirect '/auth/facebook' end # client-side flow get '/client-side' do content_type 'text/html' # NOTE: when you enable cookie below in the FB.init call # the GET request in the FB.login callback will send # a signed request in a cookie back the OmniAuth callback # which will parse out the authorization code and obtain # the access_token. This will be the exact same access_token # returned to the client in response.authResponse.accessToken. <<-END