2010-02-18 50 views
1

我有一個現有的軌道應用程序,我添加了一個新的控制器來處理來自我的小facebook應用程序(使用facebooker插件)的請求。正確的方式來設置Facebook的畫布網址和軌道應用程序中的路線

在Facebook的應用程序的配置我設置畫布回調URL到http://my.host.ip/fb/

在純粹的Facebook應用程序的URL會離開關/ FB /和用戶將被引導到應用程序的主頁。但由於這是一個現有的應用程序,我不能這樣做。

現在在我的routes.rb中我有:

map.connect '/fb/like/:id', :controller => 'facebook_app', :action => "like" 
map.connect '/fb/:category', :controller => 'facebook_app', :action => "index", :category => "default" 

敖當用戶訪問Facebook的http://apps.facebook.com/my_app_name/進行調用,以http://my.host.ip/fb/和呈現的罰款。

在該網頁上我有聯繫的 「喜歡」 的動作:

<%= link_to "like", :controller => "fb", :action => "like", :id => id %> 

唯一的問題是,這些得到呈現爲:

http://apps.facebook.com/my_app_name/fb/like/12345

時,我想的是:

http://apps.facebook.com/my_app_name/like/12345

看看如何/ fb /正在引起我的悲傷?

有沒有辦法解決這個問題?要麼在路徑定義中以某種方式表示/ fb /僅適用於傳入的URL?或者在url生成器中以某種方式忽略/ fb /?

我找到了一個解決方法......如果我添加上面這條路線的現有的「喜歡」的路線:

map.connect '/like/:id', :controller => 'facebook_app', :action => "like" 

那麼第一途徑是什麼使用的的link_to URL生成和獲取生成正確的網址:

http://apps.facebook.com/my_app_name/like/12345

點擊它時,會導致Facebook來提出這個要求到我的應用程序:

http://my.host.ip/fb/like/12345

這是由原來的「喜歡」路線匹配。

我寧願不必爲我的Facebook控制器中的每個動作都這樣做。

回答

0

你也許可以嘗試將你的callback_url設置爲http://my.host.ip/。在這個動作中,你可以檢測到請求是否來自Facebook,並且將其重定向到你的Facebook控制器(如果是這種情況)。

然後您的後續鏈接將工作。

相關問題