从这里的教程: http://ankurm.com/blog/api/using-localhost-for-facebook-app-development/1091/
我试图为我的Facebook应用程序设置一个本地开发区。但当我把“http://localhost:85/my_app/”作为我的域名时,Facebook说
应用程序域:“http://localhost:85/app-name/”不应包含协议信息。
当我把“localhost:85 / my_app /”作为我的域名时,我收到错误:
应用程序域:localhost:85 / my_app /不是有效域。
协议似乎已经改变了。
这是我的解决方案(我在2015年4月3日进行了测试,效果很好):
在设置 - >基本选项卡中
您必须创建一个隧道来共享您的localhost; Ngrok是maby最简单的方法。
通过https://ngrok.com/链接下载ngrok并解压缩该文件。打开cmd(搜索cmd)转到提取ngrok的目录。从命令行ex: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.conf搜索端口或80(默认)使用ngrok.exe 80)
http://3ahsdfhska.ngrok.com
将是用于在线访问本地主机的URL
如果您收到协议错误,您不仅需要删除Http://而且如果网址末尾有任何反斜杠,您也必须删除它,否则它将无效。我这样做了,它完美无缺!呼啦!
将另外一个解决方案投入到混合中:
我根据说明设置了我的网站,然后添加了第二个应用程序(Facebook Canvas)并将该URL设置为http://localhost:XXXXX
。现在我可以在本地和生产中访问FB。
我在本地开发,我使用此URL:localhost/fb
然后我不得不添加一个包含以下URL的网站:http://localhost
在App Domains下我添加了localhost
。
现在它有效。我唯一的问题是,您必须在所有脚本中使用此URL。例如。
$loginUrl = $helper->getLoginUrl('http://localhost/fb/login-callback.php', $permissions);
你不能在这里使用127.0.0.1
......
我尝试了这里提到的所有解决方案,但没有一个有效。
解决了我的问题是将“OAuth重定向URI”从firebase复制到facebook应用程序“Valid OAuth Redirect URIs”
我把所有域都留空了
我的解决方案
http://localhost:85/my_app/
添加到Valid OAuth redirect URIs
框中http://localhost:port_number/
多年来,这已经改变了一些,但我只是使用我在localhost上运行的webapp。这就是我做的:
http://localhost:8080/
作为站点URL。http://localhost:8080/
作为网站网址。祝好运!
2018年工作解决方案
我花了很长时间才弄明白这一点,所以我要分享我的解决方案。
我尝试了所有建议的答案,但没有任何对我有用,最后我要做的就是去https://developers.facebook.com/apps/YOUR_APP_ID/fb-login/settings/,并在Valid OAuth重定向URI框中添加我的完整回调网址。
在我的情况下,在轨道上使用ruby,我的网址看起来像这个http://localhost:3000/user/auth/facebook/callback
。
在我添加它之后,一切都开始工作了!希望这有助于其他人面对这个问题。
这就是我以前做的事情。
如果您使用的是Windows,则需要修改主机文件。主机文件位置将在%SystemRoot%\System32\drivers\etc\
像这样在主机文件中添加一个新行
127.0.0.1 localhost.YOUR-SITE-NAME.com
保存主机文件。
转到FB应用程序设置控制面板,并在Apps域字段中提供localhost.YOUR-SITE-NAME.com
。保存更改。
现在从浏览器加载localhost.YOUR-SITE-NAME.com
等本地环境。
注意:使用您的域名更改您的网站名称。
您可以将其留空或使用localhost
,http://localhost:85/my_app/
是URL
工作方案(2018年8月)
首先,在developers dashboard中选择您的应用。
然后确保您的应用程序位于development mode中,因为它允许通过HTTP进行localhost。为此,请单击位于应用页面右上角的切换按钮。
最后,请按照下面的注意事项,如果填写不当可能会导致问题:
Settings > Basic > App Domains
应该是空的Products > Facebook Login > Settings > Valid OAuth Redirect URIs
应该是空的当我在那个时候编写那个教程时,在app域允许端口。我实际上能够使用81端口(wamp服务器)运行应用程序。现在看来facebook不允许在url中使用端口。您可以在app域中使用localhost
。
我会尽快更新信息。我想找出解决方案。
临时解决方案是使用localtunnel http://progrium.com/localtunnel/