首先让我说我已经搜索了这个问题的答案已经有一段时间了......
我正在尝试设置Facebook OAuth以使用我的机器上本地开发的应用程序 . 一切都与Facebook授权完美结合UNTIL我从使用 localhost
转移到另一个域名(仍然是我的机器本地 . )现在我收到以下错误 .
无法加载网址:此网址的域名未包含在应用的域中 . 要加载此网址,请将应用的所有域和子域添加到应用设置中的应用域名字段中 .
我的主机文件包含 127.0.0.1 photovote.dev
(完美无缺)
我的应用程序中的重定向(使用Socialite)是 http://photovote.dev/auth/facebook/callback
在我的Facebook应用程序设置中...
-
我的App域名是
photovote.dev
-
我的网站网址是
http://photovote.dev/
-
我的有效OAuth重定向URI是
http://photovote.dev/auth/facebook/callback
错误消息时的URL是..
我不知道问题是什么......
屏幕截图1
屏幕截图2
26 回答
我有同样的问题,
我刚刚在我的应用设置https://developers.facebook.com/apps中添加了我的本地地址http://localhost/Facebook%20Login%20Test.html的链接到
Site URL
.现在它工作正常:)我希望这是有用的;)
确保您的应用是公开的 . 点击添加产品现在转到产品=> Facebook立即登录执行以下操作:
有效的OAuth重定向URI:example.com/
取消对回调网址的授权:https://example.com/facebookapp
This worked for me:
以下是需要了解的主要内容:Facebook将始终检查“ WWW ”域名 . 因此,请确保 www.your_domain.dev 首先在您的浏览器上运行 .
如果本地服务器上有多个虚拟主机,则某些其他虚拟主机可能会覆盖文件"httpd-vhosts.conf"顶部的“ www.your_domain.dev ". So please check that. Apache will pick the FIRST definition of domain (or ports, or something in these terms - I'm no expert on this, but learned by mistakes). An easy quick fix for this virtual host overriding is to put " www.your_domain.dev虚拟主机定义” .
转到“ /apache/conf/https-vhosts.conf ”并将其放在文件的最顶部:
Next: 如果您使用的是Windows系统,请在"C:\Windows\System32\drivers\etc"中添加两行来编辑"hosts"文件:
Next: 重启Apache服务器,现在一切正常 .
我希望这能帮到你,节省你的时间 . 我浪费了差不多整整一天的时间在网上搜索,然后把头发拉出来,直到找到这个才找到任何有用的东西 .
应在门户网站中启用此选项:
如果这有助于其他任何人,当“有效的OAuth重定向URI”成为强制性时,这在旧网站上开始发生 . 该网站仍在使用V4 PHP SDK,通过升级到V5 SDK解决了我的问题 .
我遇到了同样的问题,它来自错误的client_id / Facebook App ID .
您是否将Facebook应用程序切换为“公共”或“在线”?当您这样做时,Facebook会创建一个带有新App ID的新应用程序 .
您可以将网址中的“client_id”参数值与Facebook信息中心中的值进行比较 .
如果您在Facebook中创建应用程序时输入了错误的详细信息,通常会发生这种情况 . 或者您是否更改了现有应用程序的URL?
你能否在这个页面上重新检查你APP的设置?
https://developers.facebook.com/apps
选择正确的应用程序并单击编辑按钮;
检查URL和路径是否正确输入,并指向您已安装Ultimate Facebook插件的站点 .
在我更新我使用的SDK版本之前,没有什么对我有用 . 我从5.0开始 . 甚至5.4.0都不会起作用 . 当我更新到5.6.2时,尽管更改日志中没有任何相关内容,但它仍能完美运行!
在应用程序域部分中,您正在编写应用程序域,但您还需要添加登录域,即要求用户登录的html页面的名称 . 在我的情况下,我在localhost上测试它,登录路由是localhost / login,如果我只将http://localhost.com放在App域部分,我收到此错误 . 但是在添加http://localhost/login.com之后,错误得到了修复 . 此外,在较新版本的SDK中,应用程序设置已更改,其中没有OAuth重定向路由选项 . 成功获取OAuth令牌后,您将直接从服务器端分配重定向路由 .
我有同样的问题 . 我通过将我的OAuth重定向URI作为参数添加到getAccessToken函数调用来解决它:
如果没有参数发送到该函数,SDK会自行生成重定向URI,这应该可以工作,但在我的情况下却没有 .
希望这有助于某人 .
以下是我为解决此问题所做的工作:
基本上:
1)启用“ Embedded Browser OAuth Login ”
2)禁用“ Use Strict Mode for Redirect URIs ”并输入重定向URI,就像我一样 .
3)保留所有其他选项 .
4)保存您的更改 .
5)享受:)
使用我自己的本地服务器 .
只需在以下位置添加
http://localhost/my-site
作为网址:https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/
为我工作 .
万一有人遇到这个并正在寻找这些设置(就像我一样)
你必须
在左边手边,单击"+Add Product"并选择"Facebook Login"(它在我的顶部)
查看左侧可用的新设置
您现在将在"Product Settings"上设置这些OAuth
Additional Info: 确保将
http://localhost:3000
之类的回拨网址添加到Facebook登录设置页面上的Valid OAuth redirect URIs
字段第一步:使用所有https://example.in或ssl证书URL,不要使用http://example.in
第二步:faceboook应用程序设置 - >基本设置 - >添加您的域或子域
第三步:faceboook应用程序登录设置 - >有效OAuth重定向URI->登录后添加所有重定向URL
第四步:faceboook应用程序设置 - >高级设置 - >域管理器 - >添加您的域名
完成所有这一步,然后使用您的应用程序ID,应用程序版本,app secret进行设置
大多数答案都是将URL添加到应用程序的域中,但在公司工作时,您没有这些访问权限 . 对于这些,您可以通过简单地创建虚拟主机并进行主机条目来绕过这一点 .
将其添加到主机文件(/ etc / hosts)127.0.0.1 www.your_domain.com中
创建一个虚拟主机 . 我已经将它用于apache虚拟主机
ServerAdmin webmaster @ localhost ServerName www.your_domain.com
我有同样的问题..... issu是PHP SDK 5.6.2版本,修复程序正在编辑以下文件:
facebook\src\Facebook\Helpers\FacebookRedirectLoginHelper.php
change this line
$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code']);
to
$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code','enforce_https']);
大部分时间都没有在FB仪表板的产品部分插入正确的 valid OAuth redirect URL . 我建议按照我的下面的步骤
如果没有,您可以通过单击正弦显示波纹管中的正弦来轻松添加登录产品 .
如果是,只需进入产品设置 .
它的简单意味着登录后应该是什么 . 除了你的回调URl之外,你可以在我的下面的图片中看到我添加了几个重定向网址 .
我今天遇到了这个问题,我发现Facebook文档和SDK对其他开发人员至少可以说是不尊重和傲慢 .
除了在没有太多信息的情况下将"app domains"放在两个不同的位置(如果您添加"web"平台,则为3),您还需要转到 app products / facebook login / settings 并在 Valid OAuth Redirect URIs 下添加重定向网址
错误说没有关于oauth设置 .
在我的情况下,我必须做的事情只是启用 Embedded Browser OAuth Login
我修复它的方式:我转到了有效的OAuth重定向URI文本框并设置了 exact URL, not just the domain :
之前:
https://my-website.com
之后:
https://my-website.com/facebookoauth/facebooklogin
(在您的情况下,网址可能会有所不同,请在浏览器的地址栏中查看) .
这是由设置使用重定向URI的严格模式引起的,该模式已锁定在“是”位置 .
Facebook最近禁用了按下登录按钮时调用' Use Strict Mode for Redirect URIs ', so you need to add exact URI what'的切换按钮 . 对于我的情况,它是如截图所示 . 它解决了我的问题:)
当FB收紧登录程序时,问题和答案会不断变化 . 今天,我开始收到这条恐怖消息“该URL的域名未包含在应用程序的域中 . 为了能够加载此URL,请将应用程序的所有域和子域添加到应用程序设置中的”应用程序域“字段中 .
答案是:现在FB想要完全重定向uri . 所以对我来说,它曾经只是https://www.example.com它现在想要https://www.example.com/auth/facebook/callback . 这必须进入"Valid OAuth redirect URIs"字段(Developer / Facebook login-> setting)
Facebook登录 - >设置 - >有效的OAuth重定向URI - >插入重定向网址的域名,记住你应该添加'https'或http . 例如:如果你的重定向网址是 https://xxx.xxx.com/path/callback.do ,你只需要输入 https://xxx.xxx.com/ ,这对我来说没问题 .
在 生产环境 环境中,我发生了同样的Facebook错误 . 原因是我在Facebook(本地,制作)注册了2个应用程序,但我将本地应用程序ID硬编码到源代码中,并且忘记在部署之前将其切换为 生产环境 应用程序ID .
最佳实践要求您不应将应用程序ID硬编码到源代码中,但如果您这样做,请不要错过您错误地使用的各种Facebook应用程序ID .
点击here Code Project!其代码项目示例 . 它对我有用
截至2017年10月 .
解决我的问题的解决方案 .
目前,FB给出了这个惊喜 .
要调整的设置位于https://developers.facebook.com/apps/[your_app_itentifier]/fb-login/ .
尾随斜线很重要 . 它们必须与您的应用代码和FB管理设置匹配 . 所以这是代码中的某个配置(请参阅下面的如何获取任何域名)一个开发应用程序):
和这里
要在本地Windows计算机上获取应用程序的任何域名,请编辑
host
文件 . 自定义名称是好的,以摆脱所有localhost:8080
,0.0.0.0:30303
,127.0.0.0:8000
等等 . 因为某些第三方服务(如FB)有时无法让您使用127.0.0.0
名称 .在Windows 10上
hosts
文件在这里:备份初始文件,创建一个具有不同名称的副本(在本机Windows CMD中不起作用 . 我使用Git for Windows,它有许多Unix命令)
在
hosts
中添加此项例如,为了摆脱端口部分
:3000
设置NGINX .