我們有一個Facebook應用程序實現爲頁面中的標籤。但是,對於某些用戶來說,它確實存在奇怪的重定向。但這並不是每個人都會發生的,這就是爲什麼我無法把頭圍繞在它身上。Facebook Sinatra應用程序做奇怪的重定向
當我以未登錄的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
感謝
我不知道Facebook api或他們的應用程序是如何工作的,但它看起來像是''before''過濾器,你已經將任何沒有https請求重定向到'/'。 – matt 2012-02-19 16:54:35
嘿,那工作。過濾前我完全忽略了這一點。你可以張貼這個作爲答案,所以我可以給你的代表?非常感謝。我非常惱火,我真的不知道該怎麼辦了。顯然未登錄的用戶或沒有安全瀏覽的用戶會被重定向到'/'。是我認爲需要的原始heroku創建的應用程序的剩餘部分。可能不會 :( – cabaret 2012-02-19 17:08:38