微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐