我正在尝试在我的网站中包括Facebook Messenger客户聊天插件,但该插件未显示。几天前工作正常,但突然停止工作。
我遇到两种错误:
1-当我未登录Facebook时,我在控制台中收到此错误:
无法在“ DOMWindow”上执行“ postMessage”:目标来源 提供的('https://www.facebook.com')与收件人不匹配 窗口的原点('https://web.facebook.com')。
我在控制台中使用了FB.CustomerChat.show(),出现了对话框,但是重复了此错误,并且没有显示气泡。
2-当我登录到Facebook时,没有出现任何错误,并且插件仍然没有出现。 我在控制台中使用了FB.CustomerChat.show(),出现了对话框,但没有显示气泡,但是这次在气泡的iframe中显示了一个错误链接,说:
此插件需要使用Javascript SDK和XFBML
我尝试更改sdk的版本,更改了Facebook应用(developers.facebook.com)中的设置,将我的Facebook页面中的域列入了白名单, 尝试在sdk的网址之后添加#xfbml = 1&version = v2.12&autoLogAppEvents = 1。 完全没有运气。
window.fbAsyncInit = function () {
FB.init({
appId: app_id,
autoLogAppEvents: true,
xfbml: true,
version: 'v2.12'
});
};
(function (d, s, id) {
var js;
var fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = 'https://connect.facebook.net/'+localization+'/sdk/xfbml.customerchat.js';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
答案 0 :(得分:1)
要解决此问题,请将其添加到响应标头:
X-Frame-Options: allow-from *
或
X-Frame-Options: allow-from https://www.facebook.com https://web.facebook.com
答案 1 :(得分:0)
将 Facebook JS SDK 的版本更改为 v3.3 ,并确保 Facebook SDK 和 Facebook MCC SDK < / strong>都在body标签解决问题后完全加载。