javascript - 如何避免 Facebook xfbml.customerchat.js 与 sdk.js 冲突?

标签 javascript facebook

我的网站上有两个应用程序

  1. 客户聊天插件(取自 Facebook 粉丝页面)
  2. 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/

相关文章:

facebook - org.openqa.selenium.ElementNotInteractableException : Element is not reachable by keyboard: while sending text to FirstName field in Facebook

javascript - 使用 "this"选择器的 JQuery Mobile 菜单不起作用

javascript - 在 NEXTjs 中使用 React-Moveable 时遇到问题 : TypeError: Cannot read property 'userAgent' of undefined

javascript - 使用 JavaScript 访问 <object> 数据

javascript - 带光谱测试的 Electron 应用程序的简单示例

javascript - 无法在 FB.api 方法中声明任何内容

android - 如何在 Android native 中使用 Facebook OAuth?

javascript - "this"原型(prototype)内未定义

android - 如何使用 facebook sdk 4.1.2 从 android 到 facebook 分享标题和描述

facebook - Facebook 应用程序和选项卡之间有什么区别?