CORS 策略和 customerchat net::ERR_FAILED 上的 FB 聊天插件错误

Posted

技术标签:

【中文标题】CORS 策略和 customerchat net::ERR_FAILED 上的 FB 聊天插件错误【英文标题】:FB chat plugin error on CORS policy and customerchat net::ERR_FAILED 【发布时间】:2021-10-06 07:27:15 【问题描述】:

我在正文中执行以下代码时出错:

<div id="fb-root"></div>
<div id="fb-customer-chat" class="fb-customerchat">
</div>
<script>
  var chatbox = document.getElementById('fb-customer-chat');
  chatbox.setAttribute("page_id", "YOURPAGEIDHERE");
  chatbox.setAttribute("attribution", "biz_inbox");

  window.fbAsyncInit = function() 
  FB.init(
    xfbml            : true,
    version          : 'v12.0'
  );
  ;

  (function(d, s, id) 
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = 'https://connect.facebook.net/en_US/sdk/xfbml.customerchat.js';
  fjs.parentNode.insertBefore(js, fjs);
  (document, 'script', 'facebook-jssdk'));
</script>

错误:

我已经将 FB Advanced Messaging 中的域列入白名单。我不确定我是否遗漏了代码中的其他内容。

【问题讨论】:

您的推荐人策略设置为什么? developers.facebook.com/docs/messenger-platform/discovery/… 我在检查网络标头的页面上获得了以下信息。我正在检查它是否可以通过 html 或其他方式修复它..有什么帮助吗? Referrer Policy: strict-origin-when-cross-origin 这仍然应该发送引荐来源网址的来源部分,所以这可能没问题。 (您可以检查是否确实使用 iframe 请求发送了引荐来源网址。) 是的,我的意思是 fb 客户聊天仍然有效,即使他们有这样的错误。我只是想知道如何解决它。:) 【参考方案1】:

在设置页面 > 高级消息 > 白名单域。 添加您的域。验证您的域是 https 还是 http。

转到配置插件面板>配置并添加您的域。

【讨论】:

【参考方案2】:

Facebook requirements 之一是拥有一个 HTTPS 域。不接受 HTTP。

【讨论】:

【参考方案3】:

我也遇到了这些错误。我发现我使用的pageId是错误的?‍♀️。仅当您的 pageId 错误或域未正确列入白名单时才会出现这些错误(我什至尝试使用 ngrok url 并且它有效?)。

所以我遵循的步骤是-

1)在 buisness.facebook.com 中,从侧边栏转到收件箱并选择聊天插件。[https://i.stack.imgur.com/rDk5d.png]

2) 单击设置以添加您的域。 [https://i.stack.imgur.com/exOi2.png]

3) 选择一个设置方法(react/nextjs 的标准)和设置聊天插件(添加语言,域,复制代码并粘贴它) [https://i.stack.imgur.com/hDArZ.png]

4)可以添加多个域[https://i.stack.imgur.com/zGdgx.png]

5)你会得到已经嵌入的pageId[https://i.stack.imgur.com/iRT13.png]

使用此代码并将其粘贴到 nextjs 的 _document.js 文件中。 部署后它将完美运行。 如有任何困惑,请告诉我。 谢谢,快乐编码☺

【讨论】:

以上是关于CORS 策略和 customerchat net::ERR_FAILED 上的 FB 聊天插件错误的主要内容,如果未能解决你的问题,请参考以下文章

C# Net Core:在 API 中启用 Cors 后,仍处于 CORS 策略阻止状态

.NET Core CORS 策略块

azure 应用服务和 asp.net 核心:CORS 策略甚至 AllowAnyOrigin 也阻止了来源

使用 SIGNAL R 的 Angular 7 和 ASP.NET Core 2.2 的 CORS 策略问题

如何修复 - 重新登录时,CORS 策略已阻止访问“https://login.windows.net......”获取

.Net Core Cors中间件解析