Facebook Sinatra 应用程序执行奇怪的重定向

标签 facebook redirect heroku sinatra facebook-apps

我们有一个 Facebook 应用程序,在页面中实现为选项卡。然而,对于某些用户来说,它会进行奇怪的重定向。但这并不是每个人都会发生,这就是为什么我无法理解它。

当我在没有登录的情况下进入 Chrome 隐身模式访问 our page 时,这似乎也发生在我身上。到底发生了什么?

页面左侧的多个选项卡是我们的应用程序选项卡。然而,点击它们时似乎出了问题。我总是看到相同的首页,即“Socialabs”页面。我的 Heroku 日志表明了这一点:

2012-02-17T14:29:09+00:00 app[web.1]: 193.191.150.2 - - [17/Feb/2012 14:29:09] "POST /small HTTP/1.1" 302 - 0.0025
2012-02-17T14:29:09+00:00 heroku[router]: POST socialapp.herokuapp.com/small dyno=web.1 queue=0 wait=0ms service=28ms status=302 bytes=0
2012-02-17T14:29:09+00:00 app[web.1]: 193.191.150.2 - - [17/Feb/2012 14:29:09] "GET / HTTP/1.1" 302 - 0.0009
2012-02-17T14:29:09+00:00 heroku[router]: GET socialapp.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=10ms status=302 bytes=0
2012-02-17T14:29:09+00:00 app[web.1]: 193.191.150.2 - - [17/Feb/2012 14:29:09] "GET /tab HTTP/1.1" 200 2173 0.0112
2012-02-17T14:29:09+00:00 heroku[router]: GET socialapp.herokuapp.com/tab dyno=web.1 queue=0 wait=0ms service=14ms status=200 bytes=2173

当用户访问“小”选项卡时,似乎会发生如下情况:

POST 发生在我们应用程序的 /small 路由上。这是可以预料的。然而,我们没有渲染该路由的 erb 模板,而是得到另一个重定向:/。此路由重定向到 /tab,如我们的路由中所指定。

我不明白为什么 /small 重定向到 /。在我们的 sinatra 应用程序中,路线如下所示:

get "/contact" do
  erb :contact
end

post "/contact" do
  #on fb post we redirect to get route and display view
  redirect '/contact'
end

我实在想不通这个问题。我的 app.rb 文件的完整内容可以在这个要点中找到:https://gist.github.com/1864561

提前致谢

最佳答案

从你的 app.rb 你有:

before do
  # HTTPS redirect
  if settings.environment == :production && request.scheme != 'https'
    redirect "https://#{request.env['HTTP_HOST']}"
  end
end

我不知道 Facebook api 或他们的应用程序如何工作,但看起来可能是这个过滤器将任何无 https 请求重定向到 /

关于Facebook Sinatra 应用程序执行奇怪的重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9330648/

相关文章:

facebook - 评论插件审核工具不工作

redirect - nginx redirect :/*/to/*. html (add .html to url)

apache - .htaccess - 将域/lang/重定向到每种语言的子域

tomcat重定向到内部div而不是登录页面

ios - Facebook shareLinkContent 的深层链接

javascript - 为什么 Facebook 登录不要求正确的权限?

html - CSS 在 Facebook 页面上不起作用

grails - 使用ClearDB在Heroku上设置Grails 2.3.5 App时出现问题

angularjs - 在 Heroku 上使用 Gulp 部署 Angular 应用程序 : app crashed

angularjs - Angular 和 Go on heroku