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

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

不能加载URL:这个URL的域不包括在应用程序的 域。要加载此URL,请添加所有域和子域 在你的应用程序设置的应用程序域字段。

我的hosts文件包含127.0.0.1 domain.dev(完美工作)

我的重定向在我的应用程序(使用Socialite)是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


当前回答

In the App domain section, you are writing your app domain but you also need to add your login domain i.e. the name of html page where you ask user to login. In my case, I was testing it on localhost and the login route was localhost/login, If I only put http://localhost.com in App domain section, I get this error. But after adding http://localhost/login.com, the error was fixed. and also the App settings has changed in newer version of SDK, in which there is no option for OAuth redirect route. You've to assign the redirect route directly from server side, after successfully getting OAuth token.

其他回答

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

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

https://developers.facebook.com/apps

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

我也遇到了同样的问题,它来自一个错误的client_id / Facebook应用程序ID。

你把脸书的应用程序调成“公开”还是“在线”了?当你这样做时,Facebook会创建一个带有新应用ID的新应用。

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

如果你的游戏没有服务器/站点(例如,如果你像我一样为Gameroom开发)-添加“https://apps.facebook.com/xxxxxxxxxxxxxxxxx”(把你的应用ID改为“xxxxxxxxxxxx”)到“Valid OAuth Redirect uri”。

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

截至2017-10年。

解决了我的问题。

目前FB呈现这个惊喜。

…app的客户端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机器上应用程序的任何域名,请编辑主机文件。自定义名称可以很好地消除所有这些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

在主机中添加这个

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为例。