12

我想使用 localhost 来使用图形 api 开发网站 facebook 应用程序。我在asp.net c#中工作

在之前的 facebook api 中,我是在应用程序设置的连接 url 中编写 http://localhost:4300/

现在它不起作用了。它一直告诉我应用程序名称发生错误。请稍后再试。

有人建议吗?

** 如果我上传网站,并使用网站 coonect url,它就可以工作。

4

7 回答 7

21

Facebook 并不关心您的服务器位于哪个实际 IP 地址 - 但它会检查引用页面的域名是否与您在 Facebook 注册的域相同。在开发过程中让它工作的诀窍是找到一种使用您的域名的方法,即使您只是在本地机器上进行开发。

如果您可以完全控制您的 DNS 记录,您可以添加一个主机记录(例如 'test.yourdomain.com' ),它可以指向您的开发机器的真实 IP 地址(如果它是静态 IP),或者只是指向 127.0。 0.1

如果您无法访问您的 DNS,那么在开发过程中解决此问题的最简单方法是简单地将一个条目添加到您计算机的主机文件(OSX 和大多数其他 unix 机器上的“/etc/hosts”)指向您的域在 facebook 上注册到您的本地主机。所以你会添加这样的一行:

127.0.0.0 test.yourdomain.com

到您的主机文件的末尾。这意味着如果您现在在 Web 浏览器中输入 test.yourdomain.com,它将解析到您的本地计算机。

现在 - 在 Facebook 应用程序设置的“网站”部分,确保您已将域名添加到设置的“站点域”部分 - 这意味着 facebook 将接受来自您域的任何子域的请求 -换句话说,它将接受来自“www.yourdomain.com”(您的生产服务器)和“test.yourdomain.com”(您的本地开发机器)的请求。

现在您应该能够在您的本地计算机上使用浏览器中的“test.yourdomain.com”网址而不是“localhost”进行开发,并且一切都应该正常工作。

哦-还有一件事-如果您的开发服务器未在端口 80 上运行,则 facebook 重定向 uri 还需要一个端口号,但在匹配域 url 时它包含此端口号(坦率地说,我认为这是脸书 API)。这意味着如果您的开发服务器(例如)在端口 8080 上运行,那么您需要在重定向 URI 中的主机名末尾添加“:8080”,但如果您的生产服务器在端口 80 上运行,那么不应该将 ":80" 放在重定向 uri 中,否则只有当人们在他们用来查看您的页面的 URL 中明确包含端口号时它才会起作用(不太可能在生产服务器中)。这在实践中意味着你只需要有一个条件,以便在生成 facebook 身份验证 URL 时,如果它不是端口 80,则只包含端口号。

于 2011-06-14T12:39:17.747 回答
3

将“localhost”添加到 Facebook 上您的应用的“应用域”设置。此外,如果您正在执行诸如将“MyApp.test”重定向到本地服务器上的 127.0.0.1 之类的操作,您还可以将“MyApp.test”添加到“App Domain”中,它会起作用。

我只是在寻找解决此问题的方法后尝试了此操作。这是一个非常简单的解决方案。

于 2011-11-10T22:20:02.190 回答
2

检查您应用的 Facebook 配置中的以下基本设置:

  • 命名空间已设置
  • 应用程序域包括“localhost”
  • Canvas URL 和 Secure Canvas URL 在其 URL 中都有一个“localhost”域

如果您在保存应用程序的配置设置时收到“应用程序名称”错误,您确定应用程序的名称有效且尚未使用吗?我们一直使用 localhost(带有 ASP.Net、IISExpress 和非常高的端口号)与四个或五个不同的应用程序以及不同机器上的多个用户,并且永远不需要执行某些人在他们的答案中描述的任何额外步骤。

编辑:在重新阅读其他答案后,我猜一些开发人员正在与他们用于生产的同一 Facebook 应用程序上开发,所以他们需要将他们的机器映射到生产域?我们不这样做,我们有两个“应用程序”。一个用于使用 localhost 配置进行测试,另一个用于生产。我们有一个组件,它在运行时确定它所在的环境并构造所有必要的 URL,例如使用 App ID 和 App Secret 的 OAuth 重定向,因此我们始终运行相同的代码,只是在不同的服务器上部署了不同的配置。

于 2012-05-03T12:28:26.120 回答
0

如果我正确理解您正在尝试执行的操作并且应用程序设置位于 Facebook 的网站上,则 Facebook 将无法使用“localhost”连接到您的计算机。获取您计算机的 IP 地址并将其键入应用程序设置页面。

要查找您的 IP:http ://whatismyipaddress.com/

于 2010-07-20T11:11:10.147 回答
0

您不能在 Facebook 设置 FYI 上添加顶级域

于 2015-01-15T05:32:15.203 回答
0

您必须创建一个从开发服务器到本地计算机的 ssh 隧道。对开发服务器的每个请求都将由您的计算机处理并发回。

于 2010-07-20T12:46:21.463 回答
0

您确定问题与您的网络服务器的 DNS 名称和/或端口有关吗?如果是,您可以使用本地 IIS 而不是 webdev 服务器,配置一个网站 yourdomain.com 并向主机添加一个条目,说 127.0.0.1 yourdomain.com

于 2010-07-20T11:01:48.067 回答