我正在尝试在我的Github页面的网站之一上加载Facebook Messenger插件。它可以在Chrome中正常加载,但不能在Safari或iOS设备上加载。控制台给出以下错误:
Refused to load [...] because it does not appear in the frame-ancestors directive of the Content Security Policy.
代码如下(页面ID和应用ID匿名):
<script> var div = document.createElement('div'); div.className = 'fb-customerchat'; div.setAttribute('page_id', '[PAGEID]'); div.setAttribute('ref', 'b64:cGVyc193ZWJzaXRl'); div.setAttribute('theme_color', '#082954'); div.setAttribute('logged_in_greeting', 'Hey! Want to get involved in this research?'); div.setAttribute('logged_out_greeting', 'Hey! Want to get involved in this research? Log into Facebook to start chatting'); document.body.appendChild(div); window.fbMessengerPlugins = window.fbMessengerPlugins || { init: function () { FB.init({ appId : '[APPID]', autoLogAppEvents : true, xfbml : true, version : 'v3.3' }); }, callable: [] }; window.fbAsyncInit = window.fbAsyncInit || function () { window.fbMessengerPlugins.callable.forEach(function (item) { item(); }); window.fbMessengerPlugins.init(); }; setTimeout(function () { (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 = "//connect.facebook.net/en_US/sdk/xfbml.customerchat.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); }, 0); </script>
我检查过的东西:我的网站在Facebook页面设置上被列入白名单。聊天机器人应用程序(Chatfuel.com)还将其列入白名单。
我使用了我的Page ID数字而不是URL。
-
来自Facebook开发人员故障排除部分:
“如果您看到控制台错误,例如”由于祖先违反了以下内容安全策略指令,拒绝在框架中显示**:*
“,请检查呈现插件的页面域是否具有被列入白名单。还要确保您没有将Referrer-Policy标头设置为no-referrer。”(https://developers.facebook.com/docs/messenger-platform/discovery/customer-chat-plugin/)
我不确定在我的Beautiful-Jekyll主题Github Pages(https://github.com/daattali/beautiful-jekyll)上哪里可以找到我的推荐人政策
我希望该插件也能够在所有浏览器和iOS设备上加载。有什么建议吗?
提前谢谢您
我正在尝试在我的Github页面的网站之一上加载Facebook Messenger插件。它可以在Chrome中正常加载,但不能在Safari或iOS设备上加载。控制台给出以下错误:拒绝...
您可能已经找到了有关此问题的解决方案,但我遇到了同样的问题,所以找到了一个遮阳棚。在我的iOs Safari设置中,我将“内容块”设置为true。如果将其设置为关闭,我的Messenger聊天图标将显示在我的网站上。