如何在Nuxt、Vue中实现Facebook Messenger客户聊天SDK?
How to implement Facebook Messenger customer chat SDK in Nuxt, Vue?
我在我的 Nuxt 应用程序中使用 Facebook Messenger 客户聊天 SDK 进行此实施。
解决方案 1(有效 0%):
我尝试了 https://www.npmjs.com/package/vue-fb-customer-chat 包,但没有用,包的站点本身已关闭 -.-!我将其导入并将其用作插件等,我完全按照指示,我什至尝试使用<VueFbCustomerChat />
和<vue-fb-customer-chat />
作为额外的,但似乎没有任何效果!
解决方案 2(有效 50%):
此外,我尝试通过创建一个名为 fb-sdk.js
的静态文件将其用作静态文件并成功部署它:
window.fbAsyncInit = function() {
FB.init({
xfbml: true,
version: "v6.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")
但是我开始使用它聊天时遇到了这个错误:
ErrorUtils caught an error:
a.substr is not a function. [Caught in: React reported an error]
Subsequent errors won't be logged; see https://fburl.com/debugjs.
聊天框出现然后消失,然后就不能点击了@@
所以请帮我把Facebook Messenger客户聊天SDK添加到NuxtJS中,有包吗?分步教程?
https://www.npmjs.com/package/vue-fb-customer-chat 有效,但 URL 页面必须是 https,因此它只能在生产模式下工作。
您可能还需要在页面消息设置中将您的网站域列入白名单。
要做到这一点,请遵循此 link https://developers.facebook.com/docs/messenger-platform/discovery/facebook-chat-plugin/
FWIW,这是我在 Nuxt 中实现它而没有安装 3rd 方包的方法,它正在工作。
您的 default.vue
布局:
...
<div id="fb-root"></div>
<div id="fb-customer-chat" class="fb-customerchat"></div>
...
您的 nuxt.config.js
(这是 Facebook 要求您插入的脚本,因此请根据您自己的说明进行复制):
...
script: [
{
type: 'text/javascript',
hid: 'fb-customer-chat',
body: true,
innerHTML: `
var chatbox = document.getElementById('fb-customer-chat');
chatbox.setAttribute("page_id", YOUR_PAGE_ID);
chatbox.setAttribute("attribution", "biz_inbox");
window.fbAsyncInit = function() {
FB.init({
xfbml : true,
version : 'v11.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'));`
},
],
__dangerouslyDisableSanitizersByTagID: { 'fb-customer-chat': ['innerHTML'] },
...
__dangerouslyDisableSanitizersByTagID
设置可确保 innerHTML
中带有 hid fb-customer-chat
的代码不会被清除。
我在我的 Nuxt 应用程序中使用 Facebook Messenger 客户聊天 SDK 进行此实施。
解决方案 1(有效 0%):
我尝试了 https://www.npmjs.com/package/vue-fb-customer-chat 包,但没有用,包的站点本身已关闭 -.-!我将其导入并将其用作插件等,我完全按照指示,我什至尝试使用<VueFbCustomerChat />
和<vue-fb-customer-chat />
作为额外的,但似乎没有任何效果!
解决方案 2(有效 50%):
此外,我尝试通过创建一个名为 fb-sdk.js
的静态文件将其用作静态文件并成功部署它:
window.fbAsyncInit = function() {
FB.init({
xfbml: true,
version: "v6.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")
但是我开始使用它聊天时遇到了这个错误:
ErrorUtils caught an error:
a.substr is not a function. [Caught in: React reported an error]
Subsequent errors won't be logged; see https://fburl.com/debugjs.
聊天框出现然后消失,然后就不能点击了@@
所以请帮我把Facebook Messenger客户聊天SDK添加到NuxtJS中,有包吗?分步教程?
https://www.npmjs.com/package/vue-fb-customer-chat 有效,但 URL 页面必须是 https,因此它只能在生产模式下工作。
您可能还需要在页面消息设置中将您的网站域列入白名单。
要做到这一点,请遵循此 link https://developers.facebook.com/docs/messenger-platform/discovery/facebook-chat-plugin/
FWIW,这是我在 Nuxt 中实现它而没有安装 3rd 方包的方法,它正在工作。
您的 default.vue
布局:
...
<div id="fb-root"></div>
<div id="fb-customer-chat" class="fb-customerchat"></div>
...
您的 nuxt.config.js
(这是 Facebook 要求您插入的脚本,因此请根据您自己的说明进行复制):
...
script: [
{
type: 'text/javascript',
hid: 'fb-customer-chat',
body: true,
innerHTML: `
var chatbox = document.getElementById('fb-customer-chat');
chatbox.setAttribute("page_id", YOUR_PAGE_ID);
chatbox.setAttribute("attribution", "biz_inbox");
window.fbAsyncInit = function() {
FB.init({
xfbml : true,
version : 'v11.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'));`
},
],
__dangerouslyDisableSanitizersByTagID: { 'fb-customer-chat': ['innerHTML'] },
...
__dangerouslyDisableSanitizersByTagID
设置可确保 innerHTML
中带有 hid fb-customer-chat
的代码不会被清除。