ChatGPT解决这个技术问题 Extra ChatGPT

Facebook OAuth“此 URL 的域未包含在应用程序的域中”

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

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

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

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

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

在我的 Facebook 应用设置...

我的应用程序域是 domain.dev

我的站点 URL 是 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

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

https://i.stack.imgur.com/EDQBF.jpg

https://i.stack.imgur.com/RdCKJ.jpg

嗨,dangel,您可能想从这篇文章中混淆您的 FB client_id
@dangel 你是怎么解决这个问题的?我有同样的问题,但无法解决。
@Ghimire,在我的情况下,我更改了 URL 并且没有更新我的客户\秘密。通过阅读下面的解决方案,看起来实际上可能有各种不同的原因都给出了相同的错误。
如果您已经解决了您的问题,请分享您的解决方案。

M
Mike

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

你必须

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

https://i.stack.imgur.com/0CYEl.jpg

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


这不是错误消息所指的内容。有一条关于有效 OAuth 重定向 URI 的特定错误消息,这不是这里发生的情况。该消息清楚地指向设置»基本»应用程序域。但是,问题是即使填写了正确的域,错误消息仍然出现。
除了@HakamFostok 城市词典之外,数学在 LHS/RHS en.wikipedia.org/wiki/Sides_of_an_equation 的含义方面占主导地位,尤其是在编码领域。
这为我修好了。即使我正确填写了域,我也没有添加重定向 URL。添加重定向 URL 解决了该问题。看起来目前 FB 正在为此问题发送错误的错误消息。
我在本地工作,这是我的 url 127.0.0.1/CM/public 我的有效 OAuth 重定向 URI 应该是什么?
这在 api v2.7 中对我有用,@RichardGarside 的评论是准确的。我没有为 Valid OAuth Redirect URIs 设置值,添加此字段值解决了与更新 App Domains 相关的错误 FB 错误消息。
P
Peter O.

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

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

https://developers.facebook.com/apps

选择正确的App并点击编辑按钮;检查 URL 和路径是否正确输入并指向您安装 Ultimate Facebook 插件的站点。


我刚刚看到您所说的“您更改了现有应用程序的 URL”,这正是发生的事情,我猜它导致生成一个新的客户端\秘密 ID
嗨,我也在尝试在我的应用程序中实现 fb oauth。我已经提供了有关 fb 应用程序的所有详细信息。但是,回调重定向时会出现以下错误。 InternalOAuthError:无法在 D:\node_tutorials\fb\node_modules\passport-oauth2 的 Strategy.OAuth2Strategy._createOAuthError (D:\node_tutorials\fb\node_modules\passport-oauth2\lib\strategy.js:370:17) 处获取访问令牌\lib\strategy.js:166:45 在 D:\node_tutorials\fb\node_modules\oauth\lib\oauth2.js:177:18
另一件对我有用的尝试:尝试将你的回调从 https 切换到 http。这涉及更改调用 getLoginUrl() 的代码以及更改应用程序设置中的回调 URL。出于某种原因,尽管该站点使用 HTTPS,但回调从未对我使用 HTTPS。
我有同样的问题,但是在本地打开页面时;我将 127.0.0.1:8000 添加到授权地址,因为这是我的 easyphp 安装的配置方式,但它仍然无法正常工作。我只能在线测试FB脚本吗?!?
“单击编辑按钮”嗯,那是哪个按钮?
S
Swoot

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

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

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

希望这可以帮助某人。


这是在将我的网站从 http 移动到 https 后,我可以使它工作的唯一方法。即使更改了 Facebook Api 设置中的所有域,它也无法正常工作。
这应该是公认的答案。解决问题!
就我而言,url 本身不应包含空参数。当我将“www.example.com?param”提供给 getAccessToken 时,FB 总是说它与我提供给 getLoginUrl 的 URI 不匹配,我绝对确定它是完全相同的。使用“www.example.com”不会产生这样的错误。
谢谢你 。解决了这个问题——facebook真的很糟糕,因为所有这些错误都是抽象的/模棱两可的,你也不知道在哪里看
这是正确答案。切换到htpps时我也遇到了问题。
S
Sanjoy Kanrar

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

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

https://i.stack.imgur.com/5z7hB.png


Deauthorize Callback URL : https://example.com/facebookapp 需要什么?没有它会起作用吗?
取消授权回调 URL 不是强制性的……当用户取消我们的应用程序的授权时,facebook 将通过 url ping 我们。
m
mcfred

https://i.stack.imgur.com/ZeBzF.jpg

基本上:

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

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

3) 保留所有其余选项。

4) 保存您的更改。

5)享受:)


这为我解决了。我不想公开我的应用程序,因为我只是在做一个教程并在本地测试它。谢谢@bangbang
对我来说,无法禁用对重定向 URI 使用严格模式。
2019 年严格模式后无法禁用,此解决方案将不再有效
a
adrianTNT

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

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

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

该错误没有说明 oauth 设置。


是的,我也必须做这个额外的步骤。我分享您对文档的看法!
确切地。查看有效的域,一切都是正确的。几十分钟后,我打开登录部分,再次看到重定向 url,它是空的。在两个地方拥有相同的东西是违反所有标准的。但是对 Facebook 有什么期望。
你只是救了我的命!
B
Bhaskar Choudhary

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

https://i.stack.imgur.com/thsdp.png


g
guillaume.deslandes

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

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

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


我所做的只是将域和站点 URL 更改为从 localhost 更改为 photovote.dev。我在我的应用程序和 Facebook 设置中更新了重定向 URI。我可能会尝试创建一个新应用程序
嗯,我想我在应用程序设置上更改了一些导致生成新 ID 的内容,因为你是对的,它不再匹配了。也许当我更新站点 URL 时?不管它是否再次工作
这对我有用。在生产中使用旧的应用程序 ID。
s
sh6210

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

https://i.stack.imgur.com/MwClW.png


我也在使用基于浏览器的登录,所以我遇到了同样的问题。下面还有一个输入框,我必须在其中输入确切的重定向 URI。
除了在没有太多信息的情况下将“应用程序域”放在两个不同的位置(如果添加“网络”平台,则为 3),您还需要转到应用程序产品/Facebook 登录/设置并在有效 OAuth 重定向 URI 下添加您的重定向 URL
C
Cosmin

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

之前:https://my-website.com

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

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

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


G
Green

截至 2017 年 10 月。

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

目前该FB呈现这个惊喜。

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

https://i.stack.imgur.com/d9GkV.png

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

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

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

和这里

https://i.stack.imgur.com/zwP4y.png

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

在 Windows 10 上 hosts 文件在这里:

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。


谢谢你,不知道后面的斜杠是必需的!
2018 年 5 月 11 日,应用程序上的回调 url 和 facebook 上的有效 oauth 重定向 URI 必须相同。 https 是必须的。
尾部斜线节省了我的时间。谢谢!
R
Rumesh Madushanka

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

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

https://i.stack.imgur.com/tCnSE.jpg

02.检查是否添加了产品

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

https://i.stack.imgur.com/SkYXe.png

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

https://i.stack.imgur.com/jtkHc.png

有任何问题进一步观看我的视频--> https://www.youtube.com/watch?v=mdhubrzV5y8&t=3s


2 年前的问题,以及指向外部网站的链接不应该是答案的主要内容。
A
Ambala Chandrashekar

点击here Code Project!它的代码项目示例。它对我有用

https://i.stack.imgur.com/swWPR.png


i
iteb khayati

我有同样的问题,

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

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


S
Ste_95

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


我确实有这个问题!我正在使用“5.4.2”并升级到“5.6.2”
D
Daniel Krzyczkowski

应在门户中启用此选项:

https://i.stack.imgur.com/cnez0.png


谢谢。我有同样的问题,这是我错过的开关。
谢谢!这也对我有用(我使用的是 Google Firebase。我还必须将“有效的 OAuth 重定向 URI”设置为 google 为我的项目提供给我的 OAuth 重定向 URI。)
K
Kenneth Spencer

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


A
Anum Sheraz

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


A
Altin

这对我有用:

这是要理解的主要内容: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 服务器,现在一切正常。

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


刘同彬

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


e
e_i_pi

我遇到了同样的问题.....问题在 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']);


J
Jimmy Shaw

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

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


R
Reece Kenney

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

只需将 http://localhost/my-site 作为 URL 添加到:

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

为我工作。


P
Peter Robinson

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

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


g
ganesh avhad

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

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

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

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

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


f
felmez

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


A
Andrey

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


M
Mohamed Elleuch

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


R
Raffi

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