0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Nuxt.jsでFacebook Customer Chatを導入

Posted at

思ったより情報が落ちてなかったので、残しておきます。

Customer Chat Pluginとは名の通りFacebookページに顧客からチャットが飛ばせるよっていう仕組みで、こんな感じのMessengerアイコンがサイトに表示されるようになります。

スクリーンショット 2020-09-10 16.58.17.png

FBページからCustomer Chatの設定

最近UIが変更されたので、ちょっとわかりやすくなったかもしれません。

ページの左側にあるメニューから、設定を選択
スクリーンショット 2020-09-10 17.01.19.png

メッセージを選択
スクリーンショット 2020-09-10 17.01.28.png

半分より下くらいに、 ウェブサイトにMessengerを追加 とのメニューが表示されるので、利用を開始ボタンを押します。
スクリーンショット 2020-09-10 17.01.44.png

そうすると、stepダイアログみたいな表示になるので最後まで進めます。
最後にスニペットがでてくるので、コピペしておきましょう。
スクリーンショット 2020-09-10 17.02.00.png

Nuxt側の設定

ぺたっとスニペットを貼り付けるだけだと楽なんですけど、実際にフレームワーク使ってるとそうはいかなかったりしますよね。

ここではPluginとして読み込んでいきたいと思います。

pluginファイルの作成

さっきのスニペットを以下のように書きます。

ここはVueインスタンスで利用できるようにしてますが、Injectしても良さそうですね。

  import Vue from = 'vue'

  const vueFb = {}
  vueFb.install = function install(Vue, options) {
    (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/en_US/sdk/xfbml.customerchat.js'
      fjs.parentNode.insertBefore(js, fjs)
    }(document, 'script', 'facebook-jssdk'))

    window.fbAsyncInit = () => {
      window.FB.init(options)
      Vue.FB = window.FB

      // ここでEventのSubscribeしておくと、ハンドリングがやりやすかったりします
      // FB.Event.subscribe ~
    }
    Vue.FB = undefined
  }

  Vue.use(vueFb, {
    appId: YOUR FACEBOOK ID,
    autoLogAppEvents: true,
    xfbml: true, // ここをfalseにすると任意のタイミングでParseすることができます (表示) 
    version: Graph API Version (v3.3 etc)
  })  

nuxt.config.jsの追加

clientだけでいいと思うので、modeはclientで指定しています。

plugins: [
    { src: "~/plugins/fb.js", mode: 'client' },

任意の場所にhtmlを追加

Ex. default.vue

<template>
  <div id='app'>
    <nuxt/>
    <div class="fb-customerchat"
      :page_id="YOUR PAGE ID"
      theme_color="#0084ff">
    </div>
  </div>
</template>

これで終わりです。

まとめ

導入はめちゃくちゃ簡単ですね!

まだ安定していませんが、無料でChatサポートができるので個人で開発している方とかはかなりいいんじゃないかなと思います。
もし何かできない、動かないってなった場合はお気軽にDMで質問してください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?