2009-12-10 76 views
12

我正在嘗試編寫一些JavaScript函數來與Facebook流集成。但是,如果您直接在實時服務器上開發它們,那麼它們似乎就可以工作,以便Facebook可以訪問xd_receiver.htm文件,他們要求我將文件放置在www.mydomain.com/xd_receiver.htm處。然而,你們大家可能都認爲,不要在現場服務器上開發非常重要。在本地主機上開發Facebook Connect Javascript API

這裏是我試過到目前爲止:

  1. 現場服務器上放置xd_receiver.htm和我的開發服務器上運行我的腳本希望API密鑰會告訴Facebook服務器查找xd_receiver.htm我的生活服務器...沒有運氣
  2. 使用Facebook註冊兩個API密鑰:開發密鑰指向127.0.0.1,活的指向我的現場。這裏的理論是,如果xd_receiver.htm只需要在本地那麼它會通過127.0.0.1找到它...沒有運氣

有沒有人想出一個辦法做到這一點?他們不能指望我們在沒有開發沙箱的情況下純粹開發我們的Facebook應用程序。

一些背景信息是什麼它的價值:使用ASP.NET與VB,但希望純粹使用Javascript。

+0

我試圖做幾乎相同的事情,只是使用ASP MVC。希望它對你有好處!到目前爲止,這讓我非常瘋狂:P – MedicineMan 2010-01-16 03:09:24

回答

10

絕對可以使用本地xd_receiver.htm文件。我是一位貿易的Facebook應用程序開發人員,我已經設置了幾十個人。

您最接近上述#2的正確答案。做到這一點的方法是創建你的應用程序的兩個版本。如果我製作「MyApp」,我可能會有兩個「myapp」和「myapp-dev」的Canvas Page url以及相應的「www.myapp.com」和「192.168.1.1」的Canvas回調URL。每一個都是一個單獨的Facebook應用程序,有自己的API密鑰等。

apps.facebook.com/myapp會去我的現場服務器,apps.facebook.com/myapp-dev會去我的本地開發機。你必須確保Facebook能夠到達你的開發機器當然。

然而,事情應該從那裏工作得很好。您甚至不需要xd_receiver.htm文件的不同版本,因爲每個應用的文件內容始終相同。只要你的FB.XdComm.Server.init("/xd_receiver.htm");行指向正確的文件,它應該工作。

我管理配置文件中的API密鑰和路徑等,並且每個應用程序都有一個配置文件,無論它是開發還是生產應用程序。這使得在應用頁面上輸出正確的鍵和路徑變得很容易。

您可以保持您的開發應用程序處於沙盒模式,並在本地計算機上執行所有工作。

0

最簡單的方法是配置本地DNS,以便您的生產回調url localhost地址將被返回。在Windows中,您可以通過\ windows \ system32 \ drivers \ etc \ hosts「127.0.0.1 your_production_xd_receiver_callback_url」輕鬆實現。當然,你需要在端口80上運行你的服務器。在Windows中它的簡單任務,因爲沒有安全集中器:)在UNIX系統中,你需要配置它,因爲它的端口低於1024. 這個解決方案已經過測試,適用於我。