我使用Sinatra和
Rest-Graph gem建立了一个Facebook应用程序.现在我想
embed the app as an iframe tab in a Facebook Page.
为此,我需要从Facebook发送到我的应用程序的signed_request中获取数据.
Rest-Graph gem表示以下功能on its Github page:
Utility to extract access_token and
check sig in cookies/signed_request
我找不到任何关于如何使用这个“实用程序”的文档.你能指点我一些文档甚至更好,给我一个关于它如何与Ruby / Sinatra一起使用的例子?
解决方法
几乎所有可用的Graph API库都以类似的方式处理signed_request. Rest-Graph有一个parse_signed_request方法(
Rest-Graph/lib/core.rb),你可以在Sinatra中调用它.
我正在和Sinatra一起使用Koala,它的作用与广告一样:
oauth = Koala::Facebook::OAuth.new(APP_ID,APP_CODE) signed_request = oauth.parse_signed_request(params["signed_request"])
你得到Facebook发布的JSON对象的哈希值:
{ "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"])
Lemme知道这对你不起作用.