如何在开发Facebook图形网站时使用localhost?

Avi*_*Avi 12 c# asp.net facebook facebook-graph-api

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

在以前的facebook的api中,我在应用程序设置的连接URL中写了 http:// localhost:4300 /.

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

有人建议吗?

**如果我上传网站,并使用网站coonect网址,它是有效的.

jpo*_*way 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
Run Code Online (Sandbox Code Playgroud)

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

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

现在你应该能够在浏览器中使用"test.yourdomain.com"网址而不是"localhost"在本地计算机上进行开发,一切都应该可行.

OH - 还有一件事 - 如果你的开发服务器没有在端口80上运行,facebook重定向uri也需要有一个端口号,但它在匹配域url时包含这个端口号(坦率地说我认为这是一个bug facebook API).这意味着,如果你的开发服务器(例如)端口8080上运行,那么你就需要添加":8080"到重定向URI的主机名结束,但如果你的生产服务器端口80上运行,那么你不应该在重定向uri中放置":80",否则它只会在人们明确将端口号包含在用于查看页面的URL中时生效(在生产服务器中不太可能).这在实践中意味着你只需要有条件,这样在生成facebook身份验证URL时,如果它不是端口80,则只包括端口号.


Ale*_*nov 0

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