首先让我先说我已经寻找这个问题的答案很长一段时间了......
我正在尝试设置 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://i.stack.imgur.com/EDQBF.jpg
https://i.stack.imgur.com/RdCKJ.jpg
万一有人遇到这个并正在寻找这些设置(就像我一样)
你必须
在左侧,单击“+添加产品”并选择“Facebook登录”(它在我的顶部)查看左侧可用的新设置您现在将在“产品设置”上拥有这些 OAuth 设置
https://i.stack.imgur.com/0CYEl.jpg
附加信息:确保将回调 URL(如 http://localhost:3000
)添加到 Facebook 登录设置页面的 Valid OAuth redirect URIs
字段
如果您在 Facebook 创建应用程序时输入了错误的详细信息,通常会发生这种情况。或者您是否更改了现有应用程序的 URL?
你能在这个页面重新检查你的APP的设置吗?
https://developers.facebook.com/apps
选择正确的App并点击编辑按钮;检查 URL 和路径是否正确输入并指向您安装 Ultimate Facebook 插件的站点。
我有同样的问题。我通过将我的 OAuth 重定向 URI 作为参数添加到 getAccessToken 函数调用来解决它:
$redirectLoginHelper->getAccessToken("https://www.example.com/myfacebookcallback")
如果没有参数被发送到该函数,SDK 会自行生成重定向 URI,这应该可以工作,但在我的情况下它没有。
希望这可以帮助某人。
确保您的应用是公开的。单击 + 添加产品 现在转到产品 => Facebook 登录 现在执行以下操作:
有效的 OAuth 重定向 URI:example.com/
https://i.stack.imgur.com/5z7hB.png
Deauthorize Callback URL : https://example.com/facebookapp
需要什么?没有它会起作用吗?
https://i.stack.imgur.com/ZeBzF.jpg
基本上:
1) 启用“嵌入式浏览器 OAuth 登录”
2)禁用“对重定向URI使用严格模式”并像我一样输入重定向URI。
3) 保留所有其余选项。
4) 保存您的更改。
5)享受:)
无法加载 URL:此 URL 的域不包含在应用程序的域中。为了能够加载此 URL,请将应用程序的所有域和子域添加到应用程序设置中的应用程序域字段。
我今天遇到了这个问题,我发现 Facebook 文档和 SDK 至少可以说是对其他开发人员的不尊重和傲慢。
除了在没有太多信息的情况下将“应用程序域”放在两个不同的位置(如果添加“网络”平台,则为 3),您还需要转到应用程序产品/Facebook 登录/设置并在有效 OAuth 重定向 URI 下添加您的重定向 URL
该错误没有说明 oauth 设置。
Facebook 最近禁用了“对重定向 URI 使用严格模式”的切换按钮,因此您需要添加准确的 URI,当您点击登录按钮时调用的内容。就我而言,它如屏幕截图所示。它为我解决了这个问题:)
https://i.stack.imgur.com/thsdp.png
我遇到了同样的问题,它来自错误的 client_id / Facebook App ID。
您是否将 Facebook 应用程序切换为“公开”或“在线”?当您这样做时,Facebook 会创建一个具有新应用程序 ID 的新应用程序。
您可以将 url 中的“client_id”参数值与 Facebook 仪表板中的参数值进行比较。
就我而言,我要做的只是启用嵌入式浏览器 OAuth 登录
https://i.stack.imgur.com/MwClW.png
我修复它的方式:我转到 Valid OAuth Redirect URIs 文本框并设置确切的 URL,而不仅仅是域:
之前:https://my-website.com
之后:https://my-website.com/facebookoauth/facebooklogin
(根据您的情况,网址可能不同,请在浏览器的地址栏中查看)。
这是由设置为重定向 URI 使用严格模式导致的,该设置被锁定在“是”位置。
截至 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:8080
、0.0.0.0:30303
、127.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。
大多数情况下,没有在 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
我有同样的问题,
我刚刚在我的应用程序设置 https://developers.facebook.com/apps 中添加了我的本地地址 http://localhost/Facebook%20Login%20Test.html 到 Site URL
的链接。
现在它工作正常:) 我希望这很有用;)
在我更新了我正在使用的 SDK 版本之前,没有什么对我有用。我从 5.0 开始。甚至 5.4.0 也不行。当我更新到 5.6.2 时,它可以完美运行,尽管更新日志中没有任何相关内容!
应在门户中启用此选项:
https://i.stack.imgur.com/cnez0.png
万一这对其他人有帮助,当“有效的 OAuth 重定向 URI”成为强制性时,这开始发生在我的旧网站上。该站点仍在使用 V4 PHP SDK,通过升级到 V5 SDK 为我解决了这个问题。
在应用程序域部分,您正在编写您的应用程序域,但您还需要添加您的登录域,即您要求用户登录的 html 页面的名称。就我而言,我在 localhost 上对其进行了测试,登录路由是 localhost/login,如果我只将 http://localhost.com 放在 App domain 部分,我会收到此错误。但添加 http://localhost/login.com 后,错误已修复。并且在较新版本的 SDK 中,App 设置也发生了变化,其中没有 OAuth 重定向路由选项。成功获取 OAuth 令牌后,您必须直接从服务器端分配重定向路由。
这对我有用:
这是要理解的主要内容: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/,我就可以了。
我遇到了同样的问题.....问题在 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']);
我在生产环境中也发生了同样的 Facebook 错误。原因是我在 Facebook 注册了 2 个应用程序(本地、生产),但我将本地应用程序 ID 硬编码到源代码中,并忘记在部署之前将其切换为生产应用程序 ID。
最佳实践要求您不应该将应用程序 ID 硬编码到源代码中,但如果这样做,请不要像我错误地那样与您的各种 Facebook 应用程序 ID 不匹配。
使用我自己的本地服务器。
只需将 http://localhost/my-site
作为 URL 添加到:
https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/
为我工作。
随着FB收紧登录程序,问题和答案不断变化。今天,我开始收到这条恐怖消息“此 URL 的域不包含在应用程序的域中。为了能够加载此 URL,请将应用程序的所有域和子域添加到应用程序设置中的应用程序域字段。”
答案是:现在 FB 想要完整的重定向 uri。所以对我来说,过去只是 https://www.example.com,现在需要 https://www.example.com/auth/facebook/callback。这必须进入“有效 OAuth 重定向 URI”字段(开发人员/Facebook 登录-> 设置)
第一步:使用所有 https://example.in 或 ssl 证书 URL,不要使用 http://example.in
第二步:facebook应用设置->基本设置->添加你的域或子域
第三步:facebook应用登录设置->Valid OAuth Redirect URIs->登录后添加你的所有重定向url
第四步:facebook应用设置->高级设置->域管理器->添加你的域名
完成所有这些步骤,然后使用您的应用程序 ID、应用程序版本、应用程序密码进行设置
在 Magento 2 社交登录扩展上,您必须从面板中复制有效的 OAuth 重定向 URI,并将链接添加到 developers.facebook.com 的客户端 OAuth 设置页面中的有效 OAuth 重定向 URI 字段
如果您的游戏没有服务器/站点(例如,如果您像我一样为 Gameroom 开发)- 将“https://apps.facebook.com/xxxxxxxxxxxxxxxxx”(将您的应用 ID 而不是“xxxxxxxxxxxx”)添加到“有效 OAuth 重定向 URI”。
就我而言,我解决了这个问题,方法是添加完整的 URL,而不仅仅是 facebook 要求的域。我希望他们将其重命名以进行更多说明。所以有效的 OAuth 重定向 URI 应该是这样的:
Before: https://www.mobile-battles.com
After: https://www.mobile-battles.com/register
Meta for Developers 界面目前提供了两个可以输入应用程序域的位置:“应用程序域”下的基本设置和“域管理器”下的高级设置。如果仅在域管理器中列出,SDK 可能无法识别您的域。
Valid OAuth Redirect URIs
设置值,添加此字段值解决了与更新App Domains
相关的错误 FB 错误消息。