No commit activity in last 3 years
No release in over 3 years
Parses and validates Facebook signed requests
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Usage

    require 'facebook-signed-request'

    # The secret can be set globally
    Facebook::SignedRequest.secret = "dkhsdfhjsd123d2ed3q1wd222qd2"
    request = Facebook::SignedRequest.new( params[:signed_request] )

    # or as an optional parameter for individual calls
    request = Facebook::SignedRequest.new( params[:signed_request], secret )

    request.valid?
    # => true / false

    request.errors
    # => [
    #  "Invalid Format. See http://developers.facebook.com/docs/authentication/signed_request/",
    #  "Invalid Base64 encoding for signature",
    #  "Invalid Base64 Encoding for data",
    #  "Invalid JSON object",
    #  "Invalid Algorithm. Expected: HMAC-SHA256",
    #  "Signatures do not match.
    #]

    request.data
    # => {
    #      :Algorithm   => "HMAC-SHA256",
    #      :expires     => 1308988800,
    #      :issued_at   => 1308985018,
    #      :oauth_token => "114998258593813|2.AQBAttRlLVnwqNPZ.3600.1308988800…",
    #      :user => {
    #        :country => "de",
    #        :locale  => "en_US",
    #        :age     => {"min"=>21}
    #      },
    #      :user_id => "100000656666199"
    #    }


    Facebook::SignedRequest.encode_and_sign { :foo => bar }
    # => g_eE3hoQDPKFusHcc_Tj7k2xxo3mCKsOEXKMViq0pAY=.eyJmb28iOiJiYXIifQ==

Run the tests with rake test:units