当使用本地主机时,Facebook应用程序域名

从这里的教程:
http://ankurm.com/blog/api/using-localhost-for-facebook-app-development/1091/

我试图为我的Facebook应用程序build立一个本地开发区域。 但是,当我把“ http:// localhost:85 / my_app / ”作为我的域名时,Facebook说

应用程序域:“ http:// localhost:85 / app-name / ”不应包含协议信息。

另外,当我把“localhost:85 / my_app /”作为我的域名时,我得到错误:

应用程序域:localhost:85 / my_app /不是有效的域。

  1. 将应用程序域保留为空
  2. 使用Facebooklogin访问网站
  3. 添加http://localhost:port_number/
  4. 保存更改并重试。 欲了解更多信息请访问

http://developers.facebook.com/docs/samples/canvas/快乐编码;:-)

看来协议已经改变了。

这是我的解决scheme(我在2015年4月3日testing,效果很好):

设置 – > 基本选项卡中

  1. 应用程序域:本地主机
  2. 点击“ +添加平台 ”,select“ 网站
  3. 站点URL: http:// localhost:<port> / ( <port>是您的端口号)
  4. 保存更改

我的解决scheme

  1. 将应用程序域保留为空
  2. 应用程序>设置>高级
  3. http://localhost:85/my_app/Valid OAuth redirect URIs
  4. 保存更改

这已经改变了一些多年来,但我刚刚得到它与我在本地主机上运行的Web应用程序。 这就是我所做的:

  1. 转到https://developers.facebook.com/apps
  2. select你的应用。
  3. 从左侧导航栏中select设置>基本。
  4. 点击页面底部的添加平台button。
  5. 点击网站
  6. 为网站urlinputhttp://localhost:8080/
  7. 点击刚刚input的网站url最右侧的快速启动button。
  8. 一个新标签将打开。 在该选项卡上,向下滚动到“告诉我们您的网站”部分,然后为网站url再次inputhttp://localhost:8080/
  9. 点击下一步button。
  10. 试图再次login,这一次工作。

祝你好运!

这是我以前做的事情。

如果您使用Windows,则需要修改主机文件。 在这里find主机文件位置

像这样在主机文件中添加一个新行

 127.0.0.1 localhost.YOUR-SITE-NAME.com 

保存主机文件。

转到FB应用程序设置控制面板,并在应用程序域领域给localhost.YOUR-SITE-NAME.com 。 保存更改。

现在从你的浏览器加载你的本地环境localhost.YOUR-SITE-NAME.com

注意:用您的域名更改YOUR-SITE-NAME。

您可以将其留空或使用localhosthttp://localhost:85/my_app/是URL

当我写那个教程的时候,端口被允许在app域中。 而且我实际上能够运行81端口(wamp服务器)的应用程序。 现在看起来Facebook不允许在URL中的端口。 您可以在应用程序域中使用localhost

我会尽快更新信息。 我正试图找出解决办法。

临时解决scheme是使用localtunnel http://progrium.com/localtunnel/

2017年10月可能的解决方

花了好几年才弄清楚了,所以我要分享我的解决scheme。

我尝试了所有build议的答案,但没有为我工作,最后我所要做的就是去https://developers.facebook.com/apps/YOUR_APP_ID/fb-login/ ,并添加我的完整callback有效的OAuthredirectURI框中的url。

在我的情况下,在rails上使用ruby,我的url看起来像这个http://localhost:3000/user/auth/facebook/callback

在我添加之后,一切都开始了! 希望这可以帮助别人面对这个问题。

您必须创build一个隧道来共享您的本地主机; Ngrok是最简单的方法。

https://ngrok.com

通过https://ngrok.com/链接下载ngrok并提取该文件。; 打开cmd(search cmd)转到提取ngrok的目录。 从命令行打开ngrok例如:c:/ngrok/ngrok.exe [port]或cd c:/ ngrok然后ngrok 80(ngrok [port])

ngrok

 Tunnel Status online Version 1.3/1.3 Forwarding http://3ahsdfhska.ngrok.com -> 127.0.0.1:80 Forwarding https://3ahsdfhska.ngrok.com -> 127.0.0.1:80 Web Interface http://127.0.0.1:4040 # Conn 0 Avg Conn Time 0.00ms 

不要忘了确保你的wamp服务器是在同一个端口上打开的…(如何检查 – > goto> wampicon-> apache-> httpd.confsearch端口或80(默认)使用ngrok.exe 80)

http://3ahsdfhska.ngrok.com

将成为在线访问本地主机的URL

如果你得到的协议错误,你不仅需要删除Http://而且如果在url的末尾有反斜线,你也必须删除它,否则将不起作用。 我做到了这一点,它完美的工作! 呼啦!

向混合中再投入一个解决scheme:

我按照说明设置了我的网站,然后添加了第二个应用程序(Facebook Canvas),并将该URL设置为http://localhost:XXXXX 。 现在我可以在本地和生产中访问FB。

我在本地开发,我使用这个URL: localhost/fb

然后,我不得不添加一个网站与以下url: http://localhost

应用程序域下,我添加了localhost

现在起作用了。 我唯一的问题是,你必须在所有的脚本中使用这个URL。 例如

 $loginUrl = $helper->getLoginUrl('http://localhost/fb/login-callback.php', $permissions); 

你不能在这里使用127.0.0.1