给定的 URL 不被应用程序配置允许的 Facebook 应用程序错误。

61
给定的URL不被应用程序配置允许:一个或多个给定的URL不被应用程序的设置所允许。它必须匹配网站URL或画布URL,或者该域必须是应用程序域之一的子域。
我已经研究了SO上最受欢迎的问题(问题1, 问题2, 问题3, 问题4问题5)...但没有一个能帮助我解决我的问题。
我的应用程序设置如下... 应用程序域名: azeverything.com
沙盒模式: 已禁用
使用Facebook登录的网站
站点URL: http://azeverything.com

***应用程序域名***要求不要标识出协议,而站点URL则需要标识出协议。

我尝试使用www.azeverything.com,但也没有起作用。一切似乎都匹配。顺便说一下,这是一个WP网站。我也没有在本地开发。它全部都是实时的。


你的SDK/插件代码片段是否使用了正确的App ID? - Simon Boudrias
是的,我刚刚验证了。一切都排好了。我甚至尝试了一个完全不同的插件。仍然出现相同的错误,这告诉我是 Facebook 的问题。 - Millhorn
你的登录按钮上显示了“由LoginRadius提供技术支持”,它会打开一个格式为https://azeverything.hub.loginradius.com/requesthandlor.aspx?apikey=…的URL,并重定向到带有redirect_uri值为https://azeverything.hub.loginradius.com:443/socialauth/validate.sauth的登录对话框 - 而这个域名与你的应用程序域名并不相同。因此,去问“LoginRadius”这是怎么运作的。 - CBroe
你可能需要澄清你是要嵌入一个“点赞”按钮还是允许用户使用Facebook登录。以下两个得票最高的答案中的哪一个适用取决于这一点。 - Ed Sykes
17个回答

83
尝试检查“设置>高级设置”。在“有效的OAuth重定向URI”中,确保您有一个正确的域名。
希望它有效。

20
有人能够详细解释一下这个答案吗?虽然它得到了很多赞,但我认为可能存在语言障碍。我不知道“确保你有一个正确的域或让其为空”是什么意思。这个值应该是什么? - thumbtackthief
2
这意味着您必须仔细检查此选项是否包含您的应用程序的确切域。如果您将其留空,则将接受所有域。 - coorasse
1
如果它是空的,你的应用程序将接受来自任何站点的授权请求。如果你清除了该字段并且它能够正常工作,那么你就知道你在那里有错误的值。 - Michael Blackburn
如果您使用 Facebook 作为 OAuth 登录提供程序,则此方法有效。 - Ed Sykes
1
不能留空 - fb会抛出一个错误消息 - 无法保存设置 - Armand P

25

您需要向您的应用程序添加URL:

  1. 进入Facebook开发者页面上您希望用户登录的应用程序
  2. 点击设置选项卡
  3. 点击添加平台
  4. 选择网站
  5. 选择后,会要求您填写一些详细信息,例如使用Facebook登录功能的网站的URL,请填写表格并提交

就这样,您就完成了。请确保应用程序的URL与您登录的地址相同。


1
能否添加更多的URL? - Michal - wereda-net
1
不,无法添加更多的URL。 您必须为另一个网站创建一个新的应用程序。 - Hitesh
1
我不知道它必须是相同的登录位置,即 www.mysite.com/account/login 。这为我解决了问题!谢谢。 - J86
如果您要嵌入Facebook的“赞”或评论,这将起作用。 - Ed Sykes
我已经添加了平台,但仍然看到此错误。还有什么其他的问题需要检查? - code-8
你是否正确地按照所有步骤进行了操作?我的意思是,在配置时,@ihue,你是否提供了正确的URI? - Hitesh

8
在“基本设置”下:
  1. 添加平台 – 我的是web。
  2. 提供网站URL – 注意http或https。
  3. 如果您有移动站点URL,也可以提供– 这里也要注意http或https。
  4. 保存更改。
然后点击“高级”选项卡并向下滚动以找到“有效的OAuth重定向URI”,它位于“客户端令牌”下面。
  1. 提供重定向URL – 登录后要重定向到的URL。
  2. 保存更改。
然后返回到您的网站或网页并刷新。

5

这是一个针对像我这样的慢人的基本分解,我之前没有看到过关于此的提及。

"重定向URI"不是您要重定向到的位置,而是它来自哪里。

假设您的应用程序位于http://myFBapp.com,监听/auth/facebook,并在登录后将其重定向到/UserLoginHooray。 "有效的OAuth重定向URI"应该读取 http://myFBapp.com/auth/facebook,而不是 http://myFBapp/UserLoginHooray

解释:已经重定向(302)的HTTP请求包括标头中的原始地址,因此Facebook只是在请求上放置了一个非常基本的安全层。


我有几个客户使用我的PHP应用程序,但只有一个客户在他换了新的Mac电脑后出现了这个错误。当我在“Valid OAuth redirect URIs”中输入完整的URI(例如ihttp://app.my-page.com/full/uri/value)时,它突然就可以工作了。谢谢! - ray
1
太棒了!在寻找和尝试一两个小时后,这个、这个和绝妙的解释解决了我的问题。现在我有另一个问题与Java代码有关。您真是太棒了先生。 - null

4

我在这个问题上纠结了好几个小时。我的编程人员和我可以轻松使用FB登录,但是我的妻子却无法登录。她会收到本主题消息。我尝试了我能想到的每个Lavarel应用程序的设置和URL。

我的问题是我的妻子正在从以下位置登录:

http://www and we were using http://  

通过简单的CPanel重定向解决了问题。希望这可以帮到别人!

对于Laravel,以下FB应用程序设置适用于我:

Settings/Basic - App Domain: mydomain.com ,  Site URL: http://mydomain.com/login.

Settings/Advanced - Client OAuth Login: Yes. 

Settings/Advanced - OAuth redirect URIs: http://mydomain.com , http://mydomain.com/login.

App Details/App Center listed platforms = No.  I'm only using the login for now.

3

我有一个带Facebook登录的网站。
它已经稳定运行了几个月。 几周内没有发生任何代码更改。 然后,突然间,Facebook登录出现错误信息:

Error
Given URL is not allowed by the Application configuration.: One or more of the given URLs is not allowed by the App's settings. It must match the Website URL or Canvas URL, or the domain must be a subdomain of one of the App's domains.

在调试了一段时间之后,我重置了我的Facebook应用程序密钥,然后它又开始正常工作了!


2

1.请确保已添加网站URL和平台,如果没有,请访问https://developers.facebook.com/quickstarts/,然后选择平台 -> 设置SDK -> 网站URL等等。

注意:网站URL不能像这样:https://www.example.com只需删除www并使其简单易懂即可;)

2.进入应用程序控制面板 -> 设置 -> 点击高级选项卡,然后转到页面底部并启用嵌入式浏览器OAuth登录,将有效的OAuth重定向URI留空并保存。


2

迈克尔·布莱克本(Michael Blackburn)的答案帮助我解决了问题,但我想详细说明我的解决方法。

我有一个 PHP 应用程序,可以发布到用户的 Facebook 页面。

我拥有两个域名:

我从第一个域名构建了我的网站,因为在我看来更好阅读(至少当时是这样的)。

一些用户输入了错误的 URL,所以我购买了第二个没有连字符的域名。

所以,我的一个用户遇到了“给定的 URL”错误。

结果发现他去了 http://app.mywebapp.com,而其他人都去了 http://app.my-web-app.com

我通过添加所有可能的重定向 URI 来修复了每个用户: enter image description here

当然,有 100 种更好的实现方式,但现在这是一个解决方法。


2
我在“产品”下找到了“Facebook登录”>“设置”,而不是所有人都在上面说的“有效的OAuth重定向URI”。我猜这是版本问题。
对我来说还是没有用。我想我真的必须添加Android平台,而不仅仅是网站。这很烦人,因为我的应用程序仍处于开发模式:(
更新:我正在使用Expo开发我的React Native应用,并使用此处提供的信息:https://developers.facebook.com/apps/131491964294190/settings/basic/ 来设置Android和iOS平台。这为我解决了问题。

链接已过期,你有新的链接吗? - undefined

1
在我的Expo项目中,通过导航到应用设置 > 基本,然后在页面底部点击添加平台来解决问题。
如下所示,添加我的Bundle ID。 只需将商店ID留空即可。
如果出现错误,请点击右侧的"快速入门",然后在那里输入您的Bundle ID。

enter image description here


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