2010-01-25 50 views
3

現在,我真的厭倦了Facebook的crossdomain.xml,終於得到它從服務器加載圖片的工作。現在我需要使用Flash從我的應用程序加載變量。我收到這個錯誤。Facebook的政策文件錯誤

Error: [strict] Ignoring policy file at http://apps.facebook.com/crossdomain.xml due to incorrect syntax. See http://www.adobe.com/go/strict_policy_files to fix this problem. 
*** Security Sandbox Violation *** 
Connection to http://apps.facebook.com/feline-frenzy/endpoints/challengewin/ halted - not  permitted from http://media.varheroes.com/flash/endpointstest.swf 
Error loading data 
Error: Request for resource at http://apps.facebook.com/feline- frenzy/endpoints/challengewin/ by requestor from http://media.varheroes.com/flash/endpointstest.swf is denied due to lack of policy file permissions. 

任何解決方案?

這裏是我的代碼:

Security.loadPolicyFile("http://api.facebook.com/crossdomain.xml"); 
Security.allowDomain("*"); 
Security.allowInsecureDomain("*"); 

myData = new LoadVars() 
myData.load("http://apps.facebook.com/feline-frenzy/endpoints/challengewin/") 
myData.onLoad = function(succes){ 
if(succes){ 
    trace("DATA SAVED!!!1"); 
    } else trace ("Error loading data") 
} 
+0

請提交新的錯誤 http://bugs.developers.facebook.net/show_bug.cgi?id=10665 – 2011-01-22 14:38:32

回答

2

我不確定Facebook是否允許直接從Flash訪問apps.facebook.com。雖然根目錄中的crossdomain.xml是默認的文件名和位置,但您可以將其設置爲任何您想要的。例如,如果可能是apps.facebook.com/policies/flashpolicy.xml,或其他任何他們可以想象的東西。他們這樣做的原因是阻止人們做你正在做的事。

當然,你可以使用代理服務,你想使用的服務。你會在你的服務器上有一個腳本,它會向你發送對Facebook的請求。所以,而不是擊中http://apps.facebook.com/feline-frenzy/endpoints/challengewin/你會打http://yourserver.com/facebookProxy和該代理腳本會做Facebook的http請求,並返回您正在尋找的數據。

這裏只是一個用PHP編寫的example

+0

嗯,這當然是一個選擇。目前我正在研究django/python,所以不得不尋找替代方案。 所以基本上我會有一件代表我的通信的中間衣服? – 2010-01-26 06:42:21

+0

爲什麼選擇? Django/python非常適合這項工作。 – sberry 2010-01-26 14:14:44

+0

考慮到這種情況,我稱之爲代理URL。後者轉到apps.facebook.com獲取數據。現在獲取數據時,它呈現的XML仍然是在Facebook上,仍然是同樣的問題。如果我使用python/django,你可以在整個過程中詳細寫一下嗎? – 2010-01-29 05:54:53

0

只是猜測這裏,但我注意到在您的來電Security.loadPolicyFile("http://api.facebook.com/crossdomain.xml");的URL是在錯誤的URL不同(說,它無法讀取在apps.facebook.com/crossdomain.xml策略文件)

第二個URL也是您的myData.load("http://apps.facebook.com/feline-frenzy/endpoints/challengewin/") URL的根目錄,這是您期望flash查找策略文件的地方。

這是否有助於縮小問題範圍?

+0

基本上,apps.facebook.com/crossdomain.xml不存在。 但我需要訪問它,因爲我需要從該網址獲取用戶信息。 – 2010-01-25 17:00:13