我想使用localhost使用图形api开发网站facebook应用程序。 我在asp.net c#
工作在facebook的前一个api我是写的 应用程序设置的连接网址中的http://localhost:4300/。
现在它起作用了。 它一直在告诉我 应用程序名称发生错误。请稍后再试。
有人建议吗?
**如果我上传网站,并使用网站coonect网址,它正在运作。
答案 0 :(得分:21)
Facebook并不关心您的服务器所在的实际IP地址 - 但它会检查引用页面的域名是否与您在Facebook注册的域名相同。在开发过程中使其工作的诀窍是找到一种方法来使用您的域名,即使您只是在本地机器上进行开发。
如果您可以完全控制DNS记录,则可以添加主机记录(例如“test.yourdomain.com”),该记录指向开发计算机的真实IP地址(如果它是静态IP),或者只是至127.0.0.1
如果您无权访问DNS,那么在开发过程中解决此问题的最简单方法是在计算机的hosts文件(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”在本地计算机上进行开发,一切都应该有效。
OH - 还有一件事 - 如果你的开发服务器没有在端口80上运行,facebook重定向uri也需要有一个端口号,但是当匹配域url时它包含这个端口号(坦率地说我认为这是一个facebook API中的错误)。这意味着如果您的开发服务器(例如)在端口8080上运行,那么您需要在重定向URI中的主机名末尾添加“:8080”,但是如果您的生产服务器 在端口80上运行然后你不应该在重定向uri中放置“:80”,否则只有在人们明确地在他们用来查看你的URL的URL中包含端口号时它才会起作用页面(在生产服务器中不太可能)。这在实践中意味着你只需要有一个条件,这样在生成facebook认证URL时,如果它不是端口80,你只包括端口号。
答案 1 :(得分:3)
将“localhost”添加到Facebook上应用的“App Domain”设置。此外,如果您正在执行诸如将“MyApp.test”重定向到本地服务器上的127.0.0.1之类的操作,您还可以将“MyApp.test”添加到“App Domain”,它将起作用。
我在寻找这个问题的解决方案之后尝试了这个。这是一个非常简单的解决方案。
答案 2 :(得分:2)
在应用的Facebook配置中检查以下基本设置:
如果您在保存应用程序的配置设置时收到“应用程序名称”错误,您确定该应用程序的名称是否有效且尚未使用?我们一直使用localhost(使用ASP.Net,IISExpress和非常高的端口号),在不同的机器上有四个或五个不同的应用程序和多个用户,并且永远不需要做一些人在他们的答案中描述的任何额外步骤。
编辑:在重新阅读其他答案之后,我猜一些开发人员正在使用与生产相同的Facebook应用程序,因此他们需要将他们的机器映射到生产域?我们不这样做,我们有两个“应用程序”。一个用于使用localhost配置进行测试,另一个用于生产。我们有一个组件可以在运行时确定它所在的环境并构建所有必需的URL,例如带有App ID和App Secrets的OAuth重定向,因此我们总是运行相同的代码,只是在不同的服务器上部署了不同的配置。答案 3 :(得分:0)
您确定问题与网络服务器的DNS名称和/或端口有关吗? 如果是,您可以使用本地IIS而不是webdev服务器,配置网站yourdomain.com并向主机添加条目说 127.0.0.1 yourdomain.com
答案 4 :(得分:0)
如果我理解您正在尝试做什么以及应用程序设置在Facebook的网站上,Facebook将无法使用“localhost”连接到您的计算机。获取计算机的IP地址,然后在应用程序设置页面中输入该地址。
要查找您的IP:http://whatismyipaddress.com/
答案 5 :(得分:0)
您必须创建一个ssh隧道FROM开发服务器到您的localhost计算机。每个dev服务器请求都将由您的计算机处理并发回。
答案 6 :(得分:0)
您无法在Facebook设置FYI上添加顶级域名