【问题标题】:Facebook App - The domain of this URL isn't included in the app's domains. Why?Facebook 应用程序 - 此 URL 的域不包含在应用程序的域中。为什么?
【发布时间】:2018-03-27 12:31:42
【问题描述】:

尝试使用 Facebook 应用登录时,我收到以下错误:

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

如下图所示:

网址:http://www.facebook-php-test.com

以下是我在 Facebook 应用上设置的配置。

(注意:出于隐私目的,我更改了图片上App ID 和App Secret 的值)

此基本示例应用程序的代码位于此 GitHub 存储库中:

https://github.com/zeuscronos/facebook-php-test.com

我真的不知道为什么它实际上是the domain of this URL isn't included in the app's domains。

在现场:App Domains 我同时尝试了两个域:

  • facebook-php-test.com
  • www.facebook-php-test.com

但没有成功。

生成的登录网址如下:

https://www.facebook.com/v2.10/dialog/oauth?client_id=012345678901234&state=d3758e484d539bebd6505427aaf1fa3b&response_type=code&sdk=php-sdk-5.6.1&redirect_uri=http%3A%2F%2Fwww.facebook-php-test.com%2Ffb-callback.php&scope=email%2Cuser_friends%2Cuser_photos

我将域:facebook-php-test.com 配置为 Apache 服务器上的虚拟主机。

我不得不说我在Facebook PHP SDK 上做了很多工作,这是我第一次遇到这个问题。实际上,我在使用另一个大型应用程序时遇到了这个问题,然后在尝试解决问题几个小时后,我创建了这个虚拟应用程序来试图找出问题的原因。

我尝试了很多事情都没有成功。

你知道如何解决这个问题吗?

谢谢。

编辑 01

按照Mr.Geeker 评论的建议,我做了以下...

添加产品:Facebook Login,配置如下:

然后,我终于可以继续前进了,我被要求授予权限:

但不幸的是,在授予权限后,我得到了以下信息:

关于如何从这一点继续的任何想法?

编辑 02 - 解决方案

我结束了禁用该选项:Use Strict Mode for Redirect URIs 在Client OAuth Settings 下。他们说是strongly recommended 有这个功能On 但我不能用那个On 来工作。

顺便说一句,我也禁用了:Client OAuth Login,因为我的应用不使用它。

最后,我在Client OAuth Settings 下启用的唯一功能是:Web OAuth Login。

【问题讨论】:

标签: php facebook facebook-graph-api facebook-php-sdk


【解决方案1】:
Facebook 现在将某些功能用作插件。在左侧选择产品并添加产品。然后选择 Facebook 登录。从那里非常直接,您会看到所有 Oauth 选项都显示出来。

最初回答here

【讨论】:

  • 谢谢,我可以继续前进,但会继续出错,请参阅我的帖子。一个问题,这是新事物吗?我配置了其他 Facebook 应用程序,但没有使用 product,它们工作正常。
  • 您的设置似乎不错,请仔细检查您的站点 URL,从末尾删除 /,并仔细检查您的 Valid OAuth redirect URIs 是否正确,我仍在尝试理解为什么它不适合您
  • 当我从第一张图片的Site URL 末尾删除/,然后单击Save,/ 再次出现。我仔细检查了Valid OAuth redirect URIs,这是我在我的应用程序中设置的回调 URL。还有其他想法吗?谢谢!
  • Valid OAuth redirect URIs = http://www.facebook-php-test.com/fb-callback.php 这是正确的。你可以查看我上面的图片。此外,您在上面链接的 GitHub 存储库中有源代码。
  • 现在已经解决了。欲了解更多信息,请查看我的Edit 02。
【解决方案2】:

2018 年 3 月,Facebook 更新了 API 并强制所有应用保持严格模式开启。

要使其正常工作,您必须在 Valid OAuth Redirect URIs 字段中包含完整的回调 url。如果重定向到“https://www.example.com/facebook/callback”,则必须包含完整的 URI(不带参数):

必须在基本设置页面的应用域和网站站点 URL 字段中设置域:

如果这些都不起作用并且“无法加载 URL:此 URL 的域不包含在应用程序的域中”。消息不断显示,检查您是否拥有最新版本的 SDK。将 de PHP SDK 从版本 5.5 更新到 5.6.2 后,我可以让它工作

【讨论】:

  • 感谢分享 facebook 的最新更新。这将对许多人有所帮助
  • 这个对我有用,非常感谢分享
【解决方案3】:

我使用的是 PHP 5.5,我发现了这个错误。

PHP Facebook API VERSION = '5.5.0', DEFAULT_GRAPH_VERSION = 'v2.9' 在我的回调页面中添加了 URI ?code=XXX,如下所示:

mydomainExample.com/callbackFacebook.php ?code=XXXXXXX

我更改了源代码以删除“?”之后的字符串。现在回调 url 只有

mydomainExample.com/callbackFacebook.php

可以在 getAccessToken 函数内的文件 Facebook/Helpers/ FacebookRedirectLoginHelper.php 中完成修复。我在第 226 行添加了一个 'if',如下所示,问题消失了:

$redirectUrl = $redirectUrl ?: $this->urlDetectionHandler->getCurrentUrl();

//the next 3 lines was added to avoid the bug (fixed)
if(strripos($redirectUrl, "?")){
  $redirectUrl = substr($redirectUrl, 0, strripos($redirectUrl, "?"));
}

// At minimum we need to remove the state param
$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl, ['state']);

【讨论】:

    猜你喜欢
    • 2016-09-01
    • 2018-03-30
    • 2018-09-06
    • 2018-08-30
    • 2021-11-13
    • 1970-01-01
    • 2016-09-12
    • 2018-08-26
    相关资源
    最近更新 更多