拒绝展示..... frame-ancestors https://www.facebook.com

Refused to display..... frame-ancestors https://www.facebook.com

我在我的网站上添加了 Facebook 客户聊天插件。第一天效果很好。从第二天开始,它不工作了。我在 Google Chrome console:

中看到一条错误消息

Refused to display 'https://www.facebook.com/v2.11/plugins/customerchat.php?app_id=214160985792954&channel=https%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter%2Fr%2FlY4eZXm_YWu.js%3Fversion%3D42%23cb%3Df157c0f5ff1898c%26domain%3Dwww.fast-pay.cash%26origin%3Dhttps%253A%252F%252Fwww.fast-pay.cash%252Ff11cff6d515fe88%26relation%3Dparent.parent&container_width=0&locale=en_US&minimized=false&ref=front-page&sdk=joey' in a frame because an ancestor violates the following Content Security Policy directive: "frame-ancestors https://www.facebook.com/"."

我用谷歌搜索了解决方案。我看到的每个答案都是域白名单问题。 但是我已经在 facebook 页面中将我的域列入白名单。

这是我将域列入白名单的过程

  1. 首先我进入我的页面设置
  2. 在信使平台设置下我把我的域名加入白名单
  3. 我已经将我的域名设置为多种模式。在这里我给你我的模式

    1. https://www.my-domain.com/
    2. https://www.my-domain.com/
    3. https://my-domain.com/
    4. http://www.my-domain.com/
    5. http://my-domain.com/

这是控制台错误图片

要避免出现此消息,需要做两件事:

  1. 确保您在 HTML 中设置了正确的 Facebook 页面 ID。这应该是 numeric ID,而不是您在 URL 中看到的。我通过 https://findmyfbid.com

    找到了我的页面的数字 ID

    示例:

    <div class="fb-customerchat" page_id="6708927376315932">
    </div>
    
  2. 您的页面 > 设置 > Messenger 平台 将您的域列入白名单。确保这与您的域匹配,使用 HTTPS 协议,如果使用非标准端口,也包括端口。 (然后确保点击 保存 按钮!)

我认为这不是来自 Facebook,而是您的网站。您的浏览器拒绝显示来自 "bad" 源的 iframe,在本例中为 facebook.com.

您可以阅读

或者像本例中那样批准来自 facebook 的任何请求(这不是最好的方法,因为它削弱了针对 XSS 的一些主要保护):

Link 在 Whosebug:

确保您的 FB 页面已发布。

您没有提到任何有关使用其他插件或 CMS 的内容。您使用的是纯 PHP 还是像 WordPress 这样的 CMS?我想知道您的配置不正确可能存在问题。请重新检查您的 Facebook 页面 ID。对于任何其他插件,请确保将其打开。

我遇到了同样的问题。如果你在控制台中点击它,你会看到它说: 参数 page_id:无效 ID:<107153046051560>

问题只是<>。我删除了它:

它奏效了。 希望它也对你有用。问候

有几件事:

  1. 确保 Facebook 页面已发布
  2. 在 Facebook 页面设置(Messenger 平台)下,添加您的域。必须是 https:// 确保域名完全匹配,包括 www(或缺少 www)。
  3. 使用正确app_id
  4. 使用此 page_id(来自步骤 3 和 4)

如果聊天插件对您有效,对其他人无效,可能是因为您登录了 FB 并且您是页面管理员。检查步骤 1 和 2。

问题与白名单错误或其他问题无关。关于 google chrome 浏览器问题。如果您使用 firefox 打开,那么 Messenger 聊天就没有问题。我认为 chrome.

有问题

一些常见的事情

  • 白名单域名

  • Facebook 页面公开可见

  • 正确的页面 ID(你应该使用数字 ID,而不是 URL 中的文本 ID,如果你碰巧有的话)

  • 推荐人策略未设置为“无推荐人”

    一些其他原因,

  • 页面未通过 https 加载

  • 添加了多个facebook sdk

source, more info

正如所有这些答案所证明的那样,发生这种情况的原因可能有多种。

但是,如果您在以 Test User.

身份登录时加载页面,我遇到过但未在此处列出会导致此错误的一种情况

在 "Set Up Customer Chat page" 中确保已单击“完成”按钮。 如果FINISH按钮是灰色的,先点击SAVE按钮