2009-12-10 77 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. 这个解决方案已经过测试,适用于我。