我的网站上有两个应用程序
- 客户聊天插件(取自 Facebook 粉丝页面)
- Facebook 登录应用
第一次加载
- js.src = '//connect.facebook.net/en_EN/sdk/xfbml.customerchat.js';
第二个加载
- js.src = "//connect.facebook.net/en_EN/all.js#xfbml=1&version=v3.3&appId=MYFACEBOOKID";
这两个应用程序无法一起工作 - 如果一个应用程序可以工作,而另一个应用程序则不能。
因此,如果 Faecbook 登录 SDK 将首先加载,然后客户聊天会抛出该控制台通知:
The CustomerChat plugin is no longer part of the main Facebook SDK. To continue using it please use the correct SDK URL, meaning replace sdk.js with sdk/xfbml.customerchat.js. For more details see https://developers.facebook.com/docs/messenger-platform/discovery/customer-chat-plugin/sdk
否则,如果仅加载客户聊天,则
FB.login() called before FB.init().
发生...
想法?
最佳答案
该段代码来自客户聊天插件(由粉丝专页设置中的 FB 生成)。
我在 Facebook 登录插件中添加了 FB.init 的一部分,如下所示:
<script>
window.fbAsyncInit = function() {
FB.init({
xfbml : true,
version : 'v3.3'
});
};
// added part START
window.fbAsyncInit = function() {
FB.init({
appId : 'MYAPPID', // Facebook login
cookie : true,
xfbml : true,
version : 'v3.3'
});
};
// added part END
(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/lt_LT/sdk/xfbml.customerchat.js';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
两个插件都开始工作。
关于javascript - 如何避免 Facebook xfbml.customerchat.js 与 sdk.js 冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57377108/