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

Facebook Sinatra应用程序进行奇怪的重定向,facebook,redirect,heroku,sinatra,facebook-apps,Facebook,Redirect,Heroku,Sinatra,Facebook Apps,我们有一个Facebook应用程序,在页面中实现为选项卡。然而,对于某些用户来说,它会进行奇怪的重定向。但这并不是每个人都能做到的,这就是为什么我不能全神贯注于此 当我在Chrome隐姓埋名模式下登录而不登录时,这似乎也发生在我身上。到底发生了什么 页面左侧的多个选项卡是我们的应用程序选项卡。但是,单击它们时似乎出现了问题。我总是得到同样的首页,那就是“社交网站”页面。我的heroku日志表明: 2012-02-17T14:29:09+00:00 app[web.1]: 193.191.150.

我们有一个Facebook应用程序,在页面中实现为选项卡。然而,对于某些用户来说,它会进行奇怪的重定向。但这并不是每个人都能做到的,这就是为什么我不能全神贯注于此

当我在Chrome隐姓埋名模式下登录而不登录时,这似乎也发生在我身上。到底发生了什么

页面左侧的多个选项卡是我们的应用程序选项卡。但是,单击它们时似乎出现了问题。我总是得到同样的首页,那就是“社交网站”页面。我的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
在这种情况下,当用户访问“小”选项卡时会发生什么情况,如下所示:

我们的应用程序的
/small
路径上出现了
POST
。这是意料之中的。但是,我们没有为该路由呈现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
我真的搞不懂。my app.rb文件的完整内容可以在以下要点中找到:


提前感谢您的
app.rb

您有:

在做之前
#HTTPS重定向
如果settings.environment==:production&&request.scheme!='https'
重定向“https://{request.env['HTTP_HOST']}”
结束
结束

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

我不知道Facebook api或他们的应用程序是如何工作的,但看起来可能是在
过滤器之前的
将任何无https请求重定向到
/
。嘿,这很有效。我完全忽略了之前的过滤器。你能把这个作为答案贴出来,这样我就可以给你推荐了吗?谢谢。我真的很生气,我真的不知道该怎么办了。显然,未登录用户或没有安全上网功能的用户会被重定向到
/
。是我认为需要的heroku原创应用程序的剩余部分。我猜不是:(