[Facebook] [Canvas]提取原始请求方法

时间:2015-01-10 13:06:09

标签: ruby facebook rack facebook-canvas rack-middleware

简短版

以某种方式可以从Facebook正在执行的POST请求中获取原始请求方法吗?

长版

我想让我当前的Web应用程序Facebook画布框架在最低级别兼容。

关于Facebook Canvas

  

Facebook上的应用是加载到Canvas框架中的网页..   当用户在Facebook上加载Canvas应用程序时,我们会在该页面上的iframe中加载Canvas URL。这会导致您的应用显示在标准Facebook Chrome中。

我是 Ruby 程序员,而 Rack Middleware 似乎是解决此问题的合理解决方案。

关于Rack

  

Rack在支持Ruby和Ruby框架的Web服务器之间提供了一个最小的接口。

关于Rack Middleware

  

在服务器和框架之间,可以使用中间件

根据您的应用程序需求定制Rack

每个中间件都将使用一个名为env的对象进行初始化,这个对象是某种哈希。它包含表示HTTP请求方法的密钥REQUEST_METHOD

Facebook将所有请求方法转换为POST。要让我的应用程序在Facebook Canvas上下文中工作,我必须在我的应用程序中添加额外的POST路由。

相反,我想将env['REQUEST_METHOD']重写回原始请求方法。

在研究期间,我发现了一颗名为rack-facebook的宝石。

这个宝石正在做我想要的。它从参数中提取['fb_sig']['request_method']并将其分配给env['REQUEST_METHOD']

可悲的是,我还在facebook开发博客上找到了一篇博客文章

  

所有Canvas应用必须处理signed_request(fb_sig将被删除)

     

2011年5月10日晚上8:25

关于Facebook签名请求

  

对于某些类型的应用,签名请求会传递到应用,其中包含一些其他信息字段,即使在请求权限之前也是如此。

我查看了Facebook开发人员文档,发现请求方法或类似内容不再是signed_request param的一部分。

以某种方式可以从Facebook正在执行的POST请求中获取原始请求方法吗?

0 个答案:

没有答案