301

首先让我先说我已经寻找这个问题的答案很长一段时间了......

我正在尝试设置 Facebook OAuth 以使用在我的机器上本地开发的应用程序。一切都在 Facebook 授权下完美运行,直到我从使用localhost转移到另一个域名(仍然是我的机器本地)。现在我收到以下错误。

无法加载 URL:此 URL 的域不包含在应用程序的域中。为了能够加载此 URL,请将应用程序的所有域和子域添加到应用程序设置中的应用程序域字段。

我的主机文件包含127.0.0.1 domain.dev (完美运行)

我在我的应用程序中的重定向(使用社交名流)是http://domain.dev/auth/facebook/callback

在我的 Facebook 应用设置...

  • 我的应用程序域是domain.dev
  • 我的网站网址是http://domain.dev/
  • 我的有效 OAuth 重定向 URI 是 http://domain.dev/auth/facebook/callback

出现错误消息时的 URL 是..

https://www.facebook.com/v2.5/dialog/oauth?client_id=XXXXXXXXXXXXXXX&redirect_uri=http%3A%2F%2Fdomain.dev%2Fauth%2Ffacebook%2Fcallback&scope=email&response_type=code&state=0ztcKhmWwFLtj72TWE8uOKTcf65JmePtG95MZLDD

我不知道问题是什么...

屏幕截图 1
截屏

屏幕截图 2 在此处输入图像描述

4

29 回答 29

241

万一有人遇到这个并正在寻找这些设置(就像我一样)

你必须

  1. 在左侧,单击“+添加产品”并选择“Facebook登录”(我在顶部)
  2. 查看左侧可用的新设置
  3. 您现在将在“产品设置”上拥有这些 OAuth 设置

在此处输入图像描述

附加信息:确保将回调 URL 添加到Facebook 登录设置页面上http://localhost:3000的字段中Valid OAuth redirect URIs

于 2016-05-13T01:51:11.260 回答
94

如果您在 Facebook 创建应用程序时输入了错误的详细信息,通常会发生这种情况。或者您是否更改了现有应用程序的 URL?

你能在这个页面重新检查你的APP的设置吗?

https://developers.facebook.com/apps

  1. 选择正确的App并点击编辑按钮;

  2. 检查 URL 和路径是否正确输入并指向您安装 Ultimate Facebook 插件的站点。

于 2016-05-06T14:55:47.927 回答
68

我有同样的问题。我通过将我的 OAuth 重定向 URI 作为参数添加到 getAccessToken 函数调用来解决它:

$redirectLoginHelper->getAccessToken("https://www.example.com/myfacebookcallback")

如果没有参数被发送到该函数,SDK 会自行生成重定向 URI,这应该可以工作,但在我的情况下它没有。

希望这可以帮助某人。

于 2016-08-20T08:08:27.190 回答
41

确保您的应用是公开的。单击 + 添加产品 现在转到产品 => Facebook 登录 现在执行以下操作:

有效的 OAuth 重定向 URI:example.com/

取消授权回调 URL:https ://example.com/facebookapp http://unicodeitsolutions.com/

于 2017-02-26T13:55:40.703 回答
25

这是我为解决此问题所做的工作: 在此处输入图像描述

基本上:

1) 启用“嵌入式浏览器 OAuth 登录

2)禁用“对重定向URI使用严格模式”并像我一样输入重定向URI。

3) 保留所有其余选项。

4) 保存您的更改。

5)享受:)

于 2017-10-27T20:25:56.390 回答
21

无法加载 URL:此 URL 的域不包含在应用程序的域中。为了能够加载此 URL,请将应用程序的所有域和子域添加到应用程序设置中的应用程序域字段。

我今天遇到了这个问题,我发现 Facebook 文档和 SDK 至少可以说是对其他开发人员的不尊重和傲慢。

除了在没有太多信息的情况下将“应用程序域”放在两个不同的位置(如果添加“网络”平台,则为 3),您还需要转到应用程序产品/Facebook 登录/设置并在有效 OAuth 重定向 URI下添加您的重定向 URL

该错误没有说明 oauth 设置。

于 2018-07-17T21:38:53.010 回答
11

Facebook 最近禁用了“为重定向 URI 使用严格模式”的切换按钮,因此您需要添加准确的 URI,当您点击登录按钮时调用的内容。就我而言,它如屏幕截图所示。它为我解决了这个问题:)

在此处输入图像描述

于 2018-05-02T15:56:07.577 回答
10

我遇到了同样的问题,它来自错误的 client_id / Facebook App ID。

您是否将 Facebook 应用程序切换为“公开”或“在线”?当您这样做时,Facebook 会创建一个具有新应用程序 ID 的新应用程序。

您可以将 url 中的“client_id”参数值与 Facebook 仪表板中的参数值进行比较。

于 2016-05-06T15:53:42.803 回答
9

就我而言,我要做的只是启用嵌入式浏览器 OAuth 登录

在此处输入图像描述

于 2018-08-14T17:25:51.987 回答
8

我修复它的方式:我转到 Valid OAuth Redirect URIs 文本框并设置确切的URL,而不仅仅是域

前:https://my-website.com

后:https://my-website.com/facebookoauth/facebooklogin

(根据您的情况,网址可能不同,请在浏览器的地址栏中查看)。

这是由设置为重定向 URI 使用严格模式导致的,该设置被锁定在“是”位置。

于 2018-04-24T08:56:38.287 回答
7

截至 2017 年 10 月。

解决了我的问题的解决方案。

目前该FB呈现这个惊喜。

...应用程序的客户端 OAuth 设置。确保客户端和 Web OAuth 登录已打开...

在此处输入图像描述

要调整的设置位于https://developers.facebook.com/apps/[your_app_itentifier]/fb-login/

尾部斜线很重要。它们必须在您的应用代码和 FB 管理设置中匹配。所以这是您代码中某处的配置(请参阅下文如何获取开发应用程序的任何域名):

{
    callbackURL: `http://my_local_app.com:3000/callback/`, // trailing slash
}

和这里

在此处输入图像描述

要获取本地 Windows 机器上的应用程序的任何域名,请编辑hostfile. 自定义名称可以很好地消除所有这些localhost:8080, 0.0.0.0:30303, 127.0.0.0:8000, 等等。因为某些第三方服务(例如 FB)有时无法让您使用127.0.0.0名称。

在 Windows 10hosts上,文件在这里:

C:\Windows\System32\drivers\etc\hosts

备份初始文件,创建一个不同名称的副本(在本机 Windows CMD 中不起作用。我使用Git for Windows,它有许多 Unix 命令)

$ cp hosts hosts.bak

添加这个hosts

127.0.0.1  myfbapp.com # you can access it in a browser http://myfbapp.com:3000
127.0.0.1  www.myotherapp.io # In a browser http://www.myotherapp.io:2020

为了摆脱端口部分:3000设置NGINX,例如。

于 2017-10-25T12:41:14.270 回答
7

大多数情况下,没有在 FB 仪表板的产品部分插入正确的有效 OAuth 重定向 URL。我建议按照以下步骤操作

01.检查应用程序的基本设置是否正常,与您一起看下面的图片

在此处输入图像描述

02.查看是否添加了商品

如果没有,您可以通过单击 + 正弦轻松添加登录产品,如下所示。

如果是刚刚进入产品设置内部。 在此处输入图像描述

03.检查您是否提供了有效的 OAuth 重定向 URL

它的简单意思是登录后应该做什么。这就是你的回调 URl。你可以在我的下面的图片中看到我添加了几个重定向 URL。 在此处输入图像描述

  1. 有任何问题进一步观看我的视频--> https://www.youtube.com/watch?v=mdhubrzV5y8&t=3s
于 2018-03-15T17:34:49.587 回答
6

点击这里代码项目!它的代码项目示例。它对我有用

在此处输入图像描述

于 2017-11-03T07:19:14.923 回答
5

我有同样的问题,

我刚刚将我的本地地址http://localhost/Facebook%20Login%20Test.html的链接添加到Site URL我的应用程序设置https://developers.facebook.com/apps中。

现在它工作正常:) 我希望这很有用;)

于 2016-07-26T01:11:42.067 回答
4

在我更新了我正在使用的 SDK 版本之前,没有什么对我有用。我从 5.0 开始。甚至 5.4.0 也不行。当我更新到 5.6.2 时,它可以完美运行,尽管更新日志中没有任何相关内容!

于 2018-03-23T04:31:21.793 回答
3

应在门户中启用此选项:

在此处输入图像描述

于 2017-07-05T04:44:56.867 回答
2

万一这对其他人有帮助,当“有效的 OAuth 重定向 URI”成为强制性时,这开始发生在我的旧网站上。该站点仍在使用 V4 PHP SDK,通过升级到 V5 SDK 为我解决了这个问题。

于 2018-03-23T16:11:32.343 回答
1

这对我有用:

这是要理解的主要内容:Facebook 将始终检查“ WWW ”域。因此,请确保www.your_domain.dev首先在您的浏览器上运行。

如果您的本地服务器上有多个虚拟主机,则可能会有其他一些虚拟主机覆盖“ www.your_domain.dev ”。所以请检查一下。Apache 将选择域的第一个定义(或端口,或这些术语中的某些东西 - 我不是这方面的专家,但从错误中学到了)。一个简单的快速解决这个虚拟主机覆盖的方法是将“ www.your_domain.dev虚拟主机定义放在文件“httpd-vhosts.conf”的最顶部。

转到“ /apache/conf/https-vhosts.conf ”并将其放在文件的最顶部:

<VirtualHost *:80>
<Directory "C:/your_app_folder_path/">
    Options FollowSymLinks Indexes
    AllowOverride All
    Order deny,allow
    allow from All
</Directory>
ServerName your_domain.dev
ServerAlias your_domain.dev
DocumentRoot "C:/your_app_folder_path/"
</VirtualHost>

###### FOR SSL #####
<VirtualHost *:443>
    DocumentRoot "C:/your_app_folder_path/"
    ServerName your_domain.dev
    ServerAlias www.your_domain.dev
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
    <Directory "C:/your_app_folder_path/">
        Options All
        AllowOverride All
        Require all granted 
    </Directory>
</VirtualHost>

下一步:如果您使用的是 Windows 系统,请通过添加两行来编辑“C:\Windows\System32\drivers\etc”中的“hosts”文件:

127.0.0.1 your_domain.dev
127.0.0.1 www.your_domain.dev

下一步:重新启动您的 Apache 服务器,现在一切正常。


我希望这对您有所帮助并节省您的时间。我浪费了几乎一整天的时间在网上搜索,把头发拉出来,直到找到这个才找到任何有用的东西。

于 2017-10-06T07:52:01.177 回答
1

在应用程序域部分,您正在编写您的应用程序域,但您还需要添加您的登录域,即您要求用户登录的 html 页面的名称。就我而言,我在 localhost 上对其进行了测试,登录路由是 localhost/login,如果我只将http://localhost.com放在 App 域部分,我会收到此错误。但添加http://localhost/login.com后,错误已修复。并且在较新版本的 SDK 中,App 设置也发生了变化,其中没有 OAuth 重定向路由选项。成功获取 OAuth 令牌后,您必须直接从服务器端分配重定向路由。

于 2017-06-19T22:40:31.747 回答
1

我遇到了同样的问题.....问题在 PHP SDK 5.6.2 版本中,修复正在编辑以下文件:

facebook\src\Facebook\Helpers\FacebookRedirectLoginHelper.php

更改此行

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code']);

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code','enforce_https']);

于 2018-11-18T22:32:28.460 回答
0

Facebook 登录 -> 设置 -> 有效的 OAuth 重定向 URI -> 插入重定向 URL 的域,记住您应该添加“https”或 http。eg:如果你的redirect url是https://xxx.xxx.com/path/callback.do,你只需要输入https://xxx.xxx.com/就可以了。

于 2018-03-20T09:31:37.900 回答
0

随着FB收紧登录程序,问题和答案不断变化。今天,我开始收到这条恐怖消息“此 URL 的域不包含在应用程序的域中。为了能够加载此 URL,请将应用程序的所有域和子域添加到应用程序设置中的应用程序域字段。”

答案是:现在 FB 想要完整的重定向 uri。所以对我来说,它曾经只是https://www.example.com它现在想要https://www.example.com/auth/facebook/callback。这必须进入“有效 OAuth 重定向 URI”字段(开发人员/Facebook 登录-> 设置)

于 2018-03-17T00:14:52.967 回答
0

我在生产环境中也发生了同样的 Facebook 错误。原因是我在 Facebook 注册了 2 个应用程序(本地、生产),但我将本地应用程序 ID 硬编码到源代码中,并忘记在部署之前将其切换为生产应用程序 ID。

最佳实践要求您不应该将应用 ID 硬编码到源代码中,但如果这样做,请不要像我错误地那样与您的各种 Facebook 应用 ID 不匹配。

于 2017-11-28T16:15:57.013 回答
0

就我而言,我通过添加完整的 URL 而不仅仅是 facebook 要求的域来解决这个问题。我希望他们将其重命名以进行更多说明。所以有效的 OAuth 重定向 URI 应该是这样的:
之前https ://www.mobile-battles.com
之后https://www.mobile-battles.com/register

于 2021-02-14T02:49:08.613 回答
0

第一步:使用所有https://example.in或 ssl 证书 URL,不要使用http://example.in

第二步:facebook应用设置->基本设置->添加你的域或子域

第三步:facebook应用登录设置->Valid OAuth Redirect URIs->登录后添加你的所有重定向url

第四步:facebook应用设置->高级设置->域管理器->添加你的域名

完成所有这些步骤,然后使用您的应用程序 ID、应用程序版本、应用程序密码进行设置

于 2018-04-24T09:23:58.463 回答
0

如果您的游戏没有服务器/站点(例如,如果您像我一样为 Gameroom 开发) - 添加“ https://apps.facebook.com/xxxxxxxxxxxxxxxxx ”(输入您的应用 ID 而不是“xxxxxxxxxxxx”)到“有效的 OAuth 重定向 URIs ”。

于 2019-12-16T19:26:03.463 回答
0

在 Magento 2 社交登录扩展上,您必须从面板中复制有效的 OAuth 重定向 URI,并将链接添加到 developers.facebook.com 的客户端 OAuth 设置页面中的有效 OAuth 重定向 URI 字段

于 2019-12-12T11:57:41.323 回答
0

Meta for Developers 界面目前提供了两个可以输入应用程序域的位置:“应用程序域”下的基本设置和“域管理器”下的高级设置。如果仅在域管理器中列出,SDK 可能无法识别您的域。

于 2022-02-09T12:43:23.727 回答
0

使用我自己的本地服务器。

只需http://localhost/my-site在以下位置添加为 URL:

https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/

为我工作。

于 2017-12-09T13:48:19.657 回答