メールでのお問い合わせはこちら、お問い合わせフォーム
  1. HOME
  2. スタッフブログ
  3. ホームページのプロが教えるLINEBOT(チャットボット)の作り方

ホームページのプロが教えるLINEBOT(チャットボット)の作り方

[ 2020年04月24日 ]
LINEでチャットボット

1. 新型ウイルスの影響でチャットボット利用が急増している?

現在(2020年4月)新型コロナウイルスのため、様々な変化が表れています。
その中の一つがチャットボット利用の急増です。

衛生用品を扱っている会社では問い合わせが増えています。

  • 商品に対する問い合わせが増加
  • 通販サイトの利用も増加
  • 通販サイトの利用ヘルプもアクセスが増加

外出自粛要請により人々が家にいる時間が長くなり、テレビやネットを使う時間や頻度が増えています。

  • それまでメールとホームページ閲覧しかしていなかったから、回線やWiFiの性能が動画視聴に耐えられない
    問い合わせや、通信サービスのプラン変更などの需要が増加
  • テレビの大画面でネット動画を見たいといった、以前は無かった要望が生まれる
    問い合わせが増加

問い合わせ頻度が増えている業種以外でもチャットボット利用が増えています。

  • 元々チャットボットと有人サポートを併用していた企業で、在宅勤務の増加に伴いサポートセンターが閉鎖されてチャットボットのみに切り替え
  • 急遽一部のQ&Aに限定して導入
  • この流れはしばらく続くと思われるため、チャットボットへの需要は今後も増加し続ける見込み

今回はこのチャットボットがLINEで実現できるという事をご紹介します。
具体的なプログラムの話ではありませんが、「こんな手がある」というヒントとしてお伝えします。

2. LINEBOTとは?

kyle-icon.png チャットボットは様々なプラットフォームで使われています。

昔よく見かけたマイクロソフトオフィスのイルカもチャットボットです。

Facebookでも使われています。

line-pho.jpg そして、LINE上でもチャットボットを作ることが出来ます。それがLINEBOTです。

ヤマト運輸では宅急便でこのLINEBOTを使ったサービスを提供しています。

再配達依頼や配送状況の確認が出来るので、この文を読んでいる方でも利用された事があるかもしれませんね。

3. LINEBOTをGASでコントロールする

LINEBOTを実現するためには、BOTサーバーと呼ばれるサーバーを用意します。
BOTサーバーは特別な機器ではなく、普通のサーバーにBOT用のプログラムを載せたものです。
そしてBOT用のプログラムは、GAS(Google Apps Script)でも作ることが出来ます。

GASは、その書き方(文法)などはほぼJavaScriptと同じものですが、一般のJavaScriptがホームページを表示しているブラウザで動いているのに対し、サーバーで動作している所が違います。
そして、一番大きな違いはGoogleドライブで使えるアプリ(ドキュメントやスプレッドシートなど)を利用できる所です。

LINEBOTで会員登録をするといった動作なら、Googleドライブにスプレッドシートのデータを用意し、そこに情報を保存することで、実現できます。

特定の条件でスプレッドシートの特定のシート・行・列にある文章を送信するといった動作も行えますし、会員ごとに違うメッセージを送るための進捗フラグといったものを参照・更新する事も、表計算アプリの機能が使えるわけですから容易です。

もちろん、チャットボットとして会話型の処理をするためのプログラムも作成できます。
ただ、人工知能のような処理は難しいので、選択式質問をして回答をもらい、それに回答するといった、用途限定型のものが向いているでしょう。

ユーザーさんの質問を解釈するのは大変なんですか?

LINEBOTで使えるlineAPIはその辺はやってくれないんだ。
自然言語を解釈するAIが必要なら、他から調達しないといけない。

4. GASを使うメリット・デメリット

GASには以下のようなメリット・デメリットがあります。

1.サーバーの用意が不要

Googleドライブを使うので、別途BOTサーバーのためにレンタルサーバーを用意する必要がありません。
Googleのアカウントがあれば、すぐに取り掛かることが出来ます。

気軽に始められるのは、大きなメリットでしょう。

2.独自言語を使わない

GASは基本JavaScriptです。
Web技術者でも扱える言語ですので、GASに関しては学習コストを抑えることが出来ます。
学習が必要なのは、事実上lineAPIについてだけでしょう。

3.無料

GASの利用に関しては無料です。
ただ様々なサービスに1日の回数上限があります。
これは有料のアカウントだと回数が増加(制限が緩和)されます。

大規模案件など、専門業者に制作を依頼しないといけないような事案を考えている場合は、無料だと上限に達して機能が動作しなくなることも考えられます。
ですが、LINEBOTについての実証実験や、自分でプログラミングする小規模案件なら、上限を気にする必要は余りないでしょう。

ちなみにLINEBOTを使うための料金も無料です。

使用するLINEアカウントがライトプランなどの有料プランなら、追加費用無く LINEBOT+GAS で無料チャットボットが作れるわけです。
(LINEアカウントが無料のフリープランなどの場合は、プッシュメッセージが使えないため、出来る事が限定されます)

4.lineAPIはGASを想定していない

lineAPIはGASというよりJavaScriptを想定していないため、lineAPIリファレンスを見てもGAS用のサンプルコードは掲載されていません。
このため、多少は実験や勉強が必要です。
サーバーサイドJavaScriptであるNode.jsを参考にしつつ、ネットで情報を調べると良いでしょう。

結構ハードルの高そうなデメリットですが、そんなに心配しなくても大丈夫です。
GAS利用はメリットが多いため、多くの先人が挑戦しその成果を公開していますので、参考資料は十分あります。

LINEでメッセージを送る方法から、いきなりつまづくんですけど。
Messaging APIリファレンスを見ても出来ません。

GASでは、Node.js自体は使えないんだ。
むしろ最初からネットで調べたほうが早いと思うよ。
リファレンスは応用方法を調べるのに使うと良い。
メッセージを送るなら、一例を挙げれば

//メッセージを送る ユーザーに通知される。
function mesSend(message,to)	{

  UrlFetchApp.fetch(line_endpoint, {
    'headers': {
      'Content-Type': 'application/json; charset=UTF-8',
      'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
    },
    'method': 'post',
    'payload': JSON.stringify({
      'to': to,
      'messages': [{
        'type': 'text',
        'text': message,
      }],
    }),
  });
}

といった感じだけどね。
line_endpointには外でプッシュメッセージのアドレスを指定しているから、無料のLINE@アカウントでは動かないので、気を付けてね。

5. データベース代わりにスプレッドシートを使う

1850613.jpg

GASで何かプログラムを作る場合、データ管理はスプレッドシートを使うのが便利です。

サーバー側プログラム作成やオフィスのマクロ(VBA)でアクセスを使うといった経験の無い方の場合、データベースの概念からしてよく分からない場合もあるかもしれません。
ですが、Googleドライブにはデータベースアプリは無いため、GASでもデータベースを扱う必要はありません。

GAS側でスプレッドシートの読み書きを自在に行えますので、簡易データベースとして運用できます。
当然、ネット上で見つかる情報もスプレッドシートを使う想定のものになっています。

データベースを使ったプログラミングに慣れている方は速度面などで心配になるかもしれませんが、数十件~数百件程度のデータを扱うのでしたら、十分実用性はあると思います。

Googleドライブのスプレッドシートはエクセル同様複数のシートを管理できる表計算アプリですし、GASでは同時に複数のスプレッドシートを操作できますから、大抵の要求仕様に対応できるでしょう。

6. CRONの代わりにトリガーを使う

何かをLINEBOTで作る場合、その機能には色々なものが考えられます。

何もユーザーからのアクションに応答する事だけがチャットボットではありません。

LINEBOTを運営している側がユーザーに対してアクションを起こす運用もアリです。
例えば、毎日同じ時間帯にメッセージを送るといったプッシュ型の使い方があります。
(応答ではないためLINE@アカウントは有料プランが必要)

これを実現する場合、サーバー側で時間が来たら動作するというシステムが必要になります。
では、GASで同じことをする場合、どうすれば良いでしょう。

大抵のサーバーではCRONというものを使って実現していますが、Googleドライブを見ても、CRONは見当たりません。

実はGASでは「トリガー」という機能を使います。
GASの編集画面に時計のようなアイコンがあります。

1201.png

1202.jpg そこからトリガーの設定画面を開きます。
呼び出す関数や呼び出すタイミングを指定します。

これにより、
 「毎週月曜日、朝10時~11時にメッセージを送る関数を起動する」
といった設定を行うことが出来ます。

タイマーは複数設定できますので、
 「毎日あらかじめ用意していたポエムを順次送信」
 「週に一度、有料会員サイトの広告を配信」
といった指定も可能です。

トリガーとは関係ありませんが、GASは外部からurlを叩いても起動させられます。

上記のような設定の場合、会員登録時に専用のurlを叩いて、そのユーザーのユーザー情報を更新して広告配信を停止させるといった事も実装可能です。

もちろん、自動ではなく手動での配信を用意する事も出来ます。
臨時に全ユーザーに一斉配信するといった機能を作る場合は、専用のフォームを作り、送信するとLINEで一斉配信されるといった形になるでしょう。

テストや自分だけが使うのであれば、iisやxamppのローカルホストにフォームを置いてやっても問題ないですね。


7. まとめ

チャットボットは省力化だけでなく、ユーザーへの入口拡大といった効果もあります。
「チャット」という単語から会話専用と考えがちですが、コンテンツの配信用としても有望です。
LINEという比較的普及しているプラットフォームがLINEBOTを提供しているため、低予算でも挑戦できます。

  • LINEBOT+GASという無料サービスの組み合わせでチャットボットを作れる
  • GASはJavaScriptが分かれば使える敷居の低いシステム
  • GASは難しいデータベースを使わず、判りやすい表計算でデータ処理できる
  • GASでも時間指定や毎週・毎日といった定期処理を実行できる

LINEBOT を使った配信システムに興味をお持ちであれば、制作依頼もお受けできますのでご相談ください。

お電話でのお問い合わせはこちら
011-668-6551