Почти все библиотеки API Graph, которые доступны, работают с подписанным_просмотром аналогичным образом.Rest-Graph имеет метод parse_signed_request ( Rest-Graph / lib / core.rb ), который вы можете вызывать в Sinatra.
Я использую Koala для этого с Sinatra, и он работаеткак объявлено:
oauth = Koala::Facebook::OAuth.new(APP_ID, APP_CODE)
signed_request = oauth.parse_signed_request(params["signed_request"])
Вы получаете хеш объекта JSON, который Facebook публикует:
{
"algorithm"=>"HMAC-SHA256",
"issued_at"=>1303883452,
"user"=>
{
"country"=>"us",
"locale"=>"en_US"
},
"user_id"=>"100002364226618"
}
rest-graph также делает его довольно простым.Только что проверил это в приложении Sinatra.Прекрасно работает:
rg = RestGraph.new( :app_id => APP_ID, :secret => APP_SECRET)
parsed_request = rg.parse_signed_request!(params["signed_request"])
Дай мне знать, если это не сработает для тебя.