精简版
是否有可能从POST
Facebook 对我的 Web 应用程序执行的请求中获取原始请求方法?
长版
我想让我当前的 Web 应用程序 Facebook 画布框架在最低级别兼容。
关于 Facebook 画布
Facebook 上的应用程序是加载到 Canvas 框架中的网页。当用户在 Facebook 上加载您的 Canvas 应用程序时,我们会在该页面的 iframe 中加载 Canvas URL。这会导致您的应用程序显示在标准 Facebook chrome 中。
我是一名Ruby程序员,Rack Middleware似乎是解决这个问题的合理方法。
关于机架
Rack 在支持 Ruby 和 Ruby 框架的网络服务器之间提供了一个最小接口。
关于机架中间件
在服务器和框架之间,Rack 可以使用中间件根据您的应用程序需求进行定制
每个中间件都会用一个对象初始化,env
这个对象是某种Hash。它包含REQUEST_METHOD
代表 HTTP 请求方法的键。
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
参数的一部分。
是否有可能从POST
Facebook 对我的 Web 应用程序执行的请求中获取原始请求方法?