2010-07-10 31 views
1

我們目前在作品中有一個基於iframe的Facebook畫布應用程序。畫布部分工作正常,並沒有真正觸及Facebook API,因爲我們並不需要用戶訪問其社交圖的任何權限;我們使用的數據完全來自Facebook之外。我們如何讓用戶添加我們的應用程序作爲他們的個人資料中的選項卡?

我們想要做的是允許用戶將我們的應用程序的FBML版本作爲選項卡添加到他們的配置文件中。但是,我們不清楚我們應該如何使用當前的Facebook API來啓用該功能。

畫布頁面和回調設置已設置並正常工作,我們目前在我們的應用程序設置中設置了標籤名稱和URL(並直接點擊標籤URL將加載我們的最小測試頁面),但沒有顯而易見的方式爲用戶提供將此選項卡添加到其配置文件的功能。

我們最初的想法是,我們將需要添加XFBML我們自己的「添加配置文件選項卡」按鈕,在http://wiki.developers.facebook.com/index.php/Fb:add-profile-tab

但是提到,即使我們降低iframe來作爲準系統作爲

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 
</head> 
<body> 
<script src="http://static.ak.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/en_US" type="text/javascript"></script> 

<fb:add-profile-tab></fb:add-profile-tab> 

<script type="text/javascript"> 
    FB.init("<our secret key>", "xd_receiver.htm"); 
</script> 
</body> 
</html> 
東西

xfbml元素無法呈現。 Safari和Chrome都在控制檯中列出了以下錯誤:「不安全的JavaScript嘗試從URL [我們的iframe加載來的URL]的框架中使用URL [我們在Facebook上的應用URL]訪問框架。域,協議和端口必須匹配。

我們確實在應用程序設置頁面的連接選項卡中有連接URL指向我們的應用程序。該xd_receiver.htm文件位於同一目錄中的iframe頁面,並對其內容的

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<body> 
<script src="http://static.ak.facebook.com/js/api_lib/v0.4/XdCommReceiver.js" type="text/javascript"></script> 
</body> 
</html> 

這似乎是什麼都相關文件的建議。瀏覽器肯定會通過相關的調試窗格(web檢查器,螢火蟲等)加載它。

所以問題是,這是正確的方式去添加「添加到配置文件選項卡」功能到我們的應用程序?如果是這樣,我們如何解決跨域錯誤?如果不是,我們應該怎麼做呢?目前的文檔似乎主要集中在圖形和身份驗證API上,這兩者都沒有提到配置文件選項卡。

回答

0

原來<fb:add-profile-tab>根本不使用戶不用先允許應用程序通過什麼連接到他們像<fb:login-button>

2

在你的應用程序設置,確保這些設置:

  • 畫布>
    • 畫布頁面URL
    • 帆布回調URL
  • 文件>
    • 標籤名字
    • 標籤URL

的標籤請求會轉到{畫布回調URL}/{標籤URL}。然後像這樣的東西應該工作:http://apps.facebook.com/fbrelll/xfbml/fb:add-profile-tab

這是使用更新的JS SDK。我無法發佈更多的鏈接,但開發者網站和github存儲庫有關於SDK的有用信息。

+0

所以我們肯定都填寫了這些設置,我們正在嘗試使用該標籤。然而,按鈕從來沒有呈現,而控制檯只是報告這個「不安全的JavaScript嘗試從URL [我們的iframe加載來的URL]的框架URL [我們在Facebook上的應用URL]訪問框架。域,協議和端口必須匹配。錯誤。 – mbarnett 2010-07-10 21:17:33

+0

該錯誤是一個紅鯡魚 - WebKit是偏執狂,並將記錄該「錯誤」的合法用例,其中一個catch塊應該消耗它。即使在我的例子中,一切都按預期工作,你會注意到這個錯誤。查看您的問題的實時備案可以幫助您查看正在發生的事情。 – daaku 2010-07-11 02:50:57

相關問題