【问题标题】:Developing Facebook Connect Javascript API on localhost [closed]在本地主机上开发 Facebook Connect Javascript API [关闭]
【发布时间】:2010-12-25 01:49:24
【问题描述】:

我正在尝试编写一些 javascript 函数来与 Facebook 流集成。但是,它们似乎只有在您直接在实时服务器上开发它们时才能工作,以便 Facebook 可以访问他们要求我放置在 www.mydomain.com/xd_receiver.htmxd_receiver.htm 文件。然而,你们可能都同意,不要在实时服务器上开发是非常重要的。

这是我迄今为止尝试过的:

  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。

【问题讨论】:

  • 我正在尝试做几乎相同的事情,只是使用 ASP MVC。希望结果对你有好处!到目前为止,这让我很疯狂:P

标签: asp.net facebook


【解决方案1】:

绝对可以使用本地 xd_receiver.htm 文件。我是一名 Facebook 应用程序开发人员,我已经设置了几十个。

上面的#2 最接近正确答案。这样做的方法是创建您的应用程序的两个版本。如果我正在制作“MyApp”,我可能有两个 Canvas Page url“myapp”和“myapp-dev”,以及相应的 Canvas Callback URL“www.myapp.com”和“192.168.1.1”。每个都是一个单独的 Facebook 应用程序,具有自己的 API 密钥等。

apps.facebook.com/myapp 将转到我的实时服务器,而 apps.facebook.com/myapp-dev 将转到我的本地开发机器。当然,您必须确保 Facebook 可以访问您的开发机器。

但是,从那里开始一切正常。您甚至不需要 xd_receiver.htm 文件的不同版本,因为每个应用程序的文件内容始终相同。只要您的 FB.XdComm.Server.init("/xd_receiver.htm"); 行指向正确的文件,它就可以工作。

我在配置文件中管理 API 密钥和路径等,并且每个应用程序都有一个配置文件,无论是开发应用程序还是生产应用程序。这使得在应用页面上输出正确的键和路径变得容易。

您可以将开发应用程序保持在沙盒模式,并在本地计算机上完成所有工作。

【讨论】:

    【解决方案2】:

    最简单的方法是配置本地 DNS,以便为您的生产回调 url 返回 localhost 地址。在 Windows 中,您可以通过 \windows\system32\drivers\etc\hosts "127.0.0.1 your_production_xd_receiver_callback_url" 中的以下条目轻松实现它。当然,您需要在端口 80 上运行您的服务器。在 windows 中,它的任务很简单,因为没有安全问题 :) 在 UNIX 系统中,您需要配置它,因为它的端口低于 1024。 这个解决方案已经过测试并且对我有用。

    【讨论】:

      猜你喜欢
      • 2011-05-30
      • 2012-01-10
      • 1970-01-01
      • 2011-03-09
      • 2012-04-18
      • 2013-11-05
      • 2012-09-10
      • 1970-01-01
      相关资源
      最近更新 更多