0

在我的 Rails FB 应用程序中,当在画布中运行时,如果我转到“/users”,而不是GET设置索引页面,它POST会创建一个新用户。

只有当我尝试直接访问 URL 时才会发生这种情况。当我在应用程序上使用“用户列表”链接时,它按预期工作。

这是为什么?

4

2 回答 2

0

这就是FB的做法。他们也会在每个查询中发布数据。

于 2012-08-02T04:24:12.477 回答
0

Facebook 将所有内容作为 POST 发送,这会阻止 RESTful 路由。不过有一种方法可以解决它。如果传入的 POST 请求包含signed_request参数,您可以假设它是由 Facebook 将其从 GET 转换为 POST。

Rack::Facebook::MethodFix中间件自动修复问题。您可以将其与以下内容一起使用:

# Basic usage
use Rack::Facebook::MethodFix

# Also validate signed_request
use Rack::Facebook::MethodFix, :secret_id => "c561df165eacdd6e32672c9eaee10318"

# Do not apply request method fix to admin urls.
use Rack::Facebook::MethodFix, :exclude => proc { |env| env["PATH_INFO"].match(/^\/admin/) }

或者如果您使用的是 Rails,那么

config.middleware.use Rack::Facebook::MethodFix 
于 2012-11-12T14:11:11.483 回答