所给的URL未被应用程序配置允许。

52

我正在尝试根据这个教程创建Facebook登录页面。 我只更改了这两行代码

appId      : '370675846382420', // App ID
channelUrl : '//http://bp.php5.cz/channel.html', // Channel File

我遇到了以下错误:

  

应用程序配置不允许给定的URL:一个或多个给定的URL不在应用设置中,必须匹配网站URL或画布URL,或者域名必须是应用程序域的子域。

可能的问题是什么?

15个回答

77

问题在于你当前托管应用程序的URL没有在你的应用程序配置中设置。请前往应用程序设置并确保URL匹配。

更新

步骤:

  1. 进入应用程序的“基本”设置
  2. 选择“添加平台”
  3. 选择“网站”
  4. 在“站点URL”下输入你的网站URL

输入图片描述


2
我按照你上面说的做了。https://developers.facebook.com/apps/myappid/summary?ref=nav。在“应用程序域”中,我提到了“example.com”,并且“使用Facebook登录的网站”-网站URL:是“htttp://example.com”,我的HTML页面中我正在调用FB.getLoginStatus,位于http://example.com/facebookEX4.htm。但我仍然得到相同的错误。你能告诉我还缺少什么吗? - Kyasa Madhavi
4
如果你正在http://localhost/上测试一个在fb中配置为与www.mysite.com配合使用的应用程序,则可能会出现这种情况。请转到您的hosts文件,将www.mysite.com指向您的IP地址,然后在http://www.mysite.com(这将是您的开发环境)上进行测试。请注意不要改变原始意思。 - Alkanshel
2
对我来说,解决方法是注册完整的URL! http://www.mysite.com/somefolder/somepage.php - SJG
如果您在本地主机上没有使用端口80,请确保还输入了端口号。我正在使用9000,因此我必须输入mysite.com:9000才能使其正常运行。 - Vexter
是否可以注册多个 URL?例如 dev、staging、prod 等等? - RPDeshaies
显示剩余4条评论

23

2
谢谢,这正是我的情况。看起来 login_success.html 以前可以正常工作而无需手动批准,但他们“最近”更改了它或其他什么事情。 - Codecat
1
这个非常重要需要记住。OAuth 重定向 URI 和网站 URL 必须一致!+1 - Mario
@David Alpert,你真是太棒了,我简直不敢相信这些细节在网络上的教程(Android/SDK/Xamarin)中并没有被提到。 - Oscar Ortiz

10

以上答案是正确的,但你必须确保输入正确的URL。

你需要前往:https://developers.facebook.com/apps

  1. 选择你的应用程序
  2. 点击设置
  3. 输入联系电子邮件(用于发布)
  4. 点击 + 添加平台
  5. 添加你的平台(可能是 WEB)
  6. 输入网站 URL

你有两个选项可以输入: http://www.example.com 或者 http://example.com

你的应用程序只能与其中一个一起使用。为了确保你的访客将使用你所需的url,请在你的域上使用 .htaccess。

这里是关于那个的好教程:http://eppand.com/redirect-www-to-non-www-with-htaccess-file/

享受吧!


嘿,那个“...或者域必须是应用程序域的子域”的部分怎么样?这对于从网站分享不适用吗? - Shade

7

请前往您的应用程序设置(基本选项卡),添加平台(网站)。输入您的网站URL并完成设置即可。


这就是我在寻找的答案。 - Ritesh A
当我点击“添加平台”时,“网站”是灰色的。 - jimjamslam
1
为什么会出现这个?URL已被阻止:此重定向失败是因为应用程序的客户端OAuth设置中未将重定向URI列入白名单。 确保开启了客户端和Web OAuth登录,并将所有应用程序域添加为有效的OAuth重定向URI。同时,它在某些浏览器中可以工作。 - Remya R

6

首先,添加站点和URL。接着,由于Facebook的布局略有改变,因此需要完成以下步骤: - 前往developers.facebook.com -> 您的应用程序 - 进入设置->高级。 - 在安全性->有效OAuth重定向URI下,插入所有应用程序应该重定向到的URI。例如(http://localhost:1443/cas/login, https://localhost:2443/cas/login, http://rajanpupa.com/cas/login 等)。 - 完成上述步骤即可。


2

我遇到了同样的问题。我在应用程序设置中输入了http://www.example.com。当有人使用完整的 URL 访问我的网站时,Facebook 登录可以正常工作。但是如果有人在浏览器中输入不带www的 URL,则 Facebook 登录将失败,并显示此错误消息。当我把应用程序设置更改为 http://example.com 时,一切开始正常工作。


1
我的问题已被解决。
public static final String REDIRECT_URI = "http://google.com"; 

它会在您登录Facebook后重定向到URL。您还需要到以下网址: https://developers.facebook.com -> 我的应用程序 -> (选择您的应用程序)-> 设置 -> 高级设置 -> 有效的OAuth重定向URI: "http://google.com"。
在"http://google.com"的位置上,您可以放置您相应项目的URL。这样,它将重定向到您的页面。

1
我正在使用Facebook Canvas平台(Unity WebGL),不需要添加网站平台。我所做的唯一一件事是在以下位置添加我的网站根URL:
  • 产品
    • Facebook登录
      • 有效的OAuth重定向URI

Facebook Login configurations


1

1
这里的其他答案都非常优秀和准确。为了增加尝试的方法列表:
仔细检查您的应用程序是否正在使用正确的应用程序ID和密钥。在我的情况下,在尝试了许多其他方法之后,我检查了应用程序ID和密钥,并发现我在我们的开发系统上使用了生产设置。哎呀!
使用正确的应用程序ID和密钥解决了问题。

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