Method: Rack::Facebook#call

Defined in:
lib/rack/facebook.rb

#call(env) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/rack/facebook.rb', line 33

def call(env)
  if @condition.nil? || @condition.call(env)
    request = Rack::Request.new(env)
    fb_params = extract_fb_sig_params(request.POST)
    unless fb_params.empty?
      unless signature_is_valid?(fb_params, request.POST['fb_sig'])
        return Rack::Response.new(["Invalid Facebook signature"], 400).finish
      end
      env['REQUEST_METHOD'] = fb_params["request_method"] if fb_params["request_method"]
      convert_parameters!(request.POST)
    end
  end
  @app.call(env)
end