Facebook登录“给定的URL不被应用程序配置允许”

72

我已经在我的网站上添加了Facebook登录功能。但是,当我点击按钮时,会出现一个红色框,上面写着:

Invalid Argument

Given URL is not allowed by the Application configuration.

如果我继续登录,那么我会得到:

API Error Code: 100
API Error Description: Invalid parameter
Error Message: next is not owned by the application.

不太确定问题具体是什么。欢迎提出任何想法。

6个回答

44

你的设置可能有误。

前往http://www.facebook.com/developers/并编辑你正在使用的应用程序。

在“网站”选项卡中查找“站点 URL”。它应该设置为你网站的 URL "http://yoursite.com/"

请注意,如果你正在使用子域名,你还需要更新“站点域名”为“yoursite.com”


3
没关系。我太蠢了!问题是我在本地测试登录,所以在应用程序配置设置中需要一个localhost URL。非常感谢你的帮助。 - Joe
1
@joe:没问题!为了正确地测试一切,您可能需要打开某种隧道,以便 Facebook 不必处理本地 URL 并因此可能出现故障。 - marcgg
@joe:你需要一种服务器 ~ http://en.wikipedia.org/wiki/Tunneling_protocol - marcgg
@marcgg 那么,无法为您的Facebook回调使用自定义协议吗? - Nathan Schwermann
@schwiz:我认为现在你可以设置一个安全的URL。不过我不确定。 - marcgg
显示剩余2条评论

27
你可以设置一个开发者应用程序,并将URL设置为localhost.com:port,请确保在主机文件中将localhost.com映射到localhost。
对我来说有效。

1
在开发过程中非常有用的测试。 - bradvido
2
有人可以提供如何做这个的说明吗?我从上面(或者从谷歌搜索)都没有弄明白。 - Ryan
3
在你的 Facebook 应用程序信息中,将“Site URL”更改为 localhost.com,然后在您的 hosts 文件中(查看此处以了解文件位置:http://en.wikipedia.org/wiki/Hosts_(file)#Location_in_the_file_system),添加一个条目“127.0.0.1 localhost.com”。这样,当您访问 localhost.com 时,它将导向到 127.0.0.1,也就是您的本地计算机。希望这能有所帮助! - davvilla
1
请注意...端口不是必需的。在FB应用程序设置中,在“应用程序域”下添加“local.yourdomain.com”(现在需要是网站平台配置中配置的站点URL的子集)...按照此处所述的方式配置主机 local.yourdomain.com 127.0.0.1。 - pherris

4

2

当我使用隧道时,遇到了以下问题:

  1. 在FB应用程序设置中设置了隧道的url:port
  2. 但是通过将浏览器指向"http://localhost:3000"来访问本地服务器

一旦我开始在浏览器中输入隧道的url:port,一切就都正常了。

我正在使用Rails和Facebooker,但这可能对其他人也有帮助。


1

0
当我在我的应用程序中使用通配符子域名时,我一直遇到这个错误。我将网站URL设置为http://myapp.com,应用程序域也设置为http://myapp.com,在设置应用程序的高级选项卡中,有效的OAuth重定向URI也设置为相同的值。我尝试了不同的组合,但只有将http://subdomain.myapp.com设置为重定向值才起作用,当然只适用于该子域名。
解决方案是清空重定向字段,将其留空即可解决问题! ;)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接