使用Ruby / Sinatra和Rest-Graph gem在Facebook App中获取signed_request

我使用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知道这对你不起作用.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...