Verify the Facebook parameter signature

These 10 lines of Ruby (on Rails) will verify the integrity of a Facebook canvas page request.

require "md5"    
before_filter :verify_fb_signature

def verify_fb_signature      
  teststr = params.collect do |k,v| 
    next unless k[0..6] == "fb_sig_" 
    "#\{k[7..-1]\}=#\{v\}" 
  end
  teststr = teststr.compact.sort.join("") 
  if MD5::md5(teststr+ MY_APP_SECRET).to_s != params[:fb_sig]
    #there is something wrong in paradise...
  end
end