【GAS】LINEのチャットボットをGoogle Apps Scriptで作ってみた。

LINEのチャットボットをGASで作ってみました。思ったよりも簡単にできたので、作り方をご紹介したいと思います。

全体の流れ

全体の流れは以下の図のようになります。

作成するものは、「LINE Channel」と、「GAS」です。
作成したLINE Channelにメッセージを送信すると、それをトリガーにしてWebhook(要するには、POST送信です)を発行することができます。それをGASのdoPost関数で受けて、所定の形式でレスポンスを返してやります。そうすることで、クライアントに自動返信されるといった一連の処理となります。

ということで、ボット作ってみましょう。

1. GASのプロジェクトを作成しておく

まずは、GASのプロジェクトを用意しておきましょう。

コードの記述

以下のコードを作成しておきます。


コード.gs

var CHANNEL_ACCESS_TOKEN = 'your access token';


function doPost(e) {
  var reply_token= JSON.parse(e.postData.contents).events[0].replyToken;
  if (typeof reply_token === 'undefined') {
    return;
  }
  var user_message = JSON.parse(e.postData.contents).events[0].message.text;
  
  var url = 'https://api.line.me/v2/bot/message/reply';
  UrlFetchApp.fetch(url, {
    'headers': {
      'Content-Type': 'application/json; charset=UTF-8',
      'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
    },
    'method': 'post',
    'payload': JSON.stringify({
      'replyToken': reply_token,
      'messages': [{
        'type': 'text',
        'text': user_message,
      }],
    }),
  });
  return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
}

ちなみに内容としては、ただのオウム返しです。
一行目の「CHANNEL_ACCESS_TOKEN」は、後ほどLINE Channelを作成したあとに取得することができます。

ウェブアプリケーションとしてデプロイ

公開URLをメモっておきましょう。公開範囲は匿名まで含ませてください。

2. LINE Channelを作成する

LINE Channelを作っていきます。LINEのアカウントがあり、メールアドレス、パスワードでログインできることが前提です。

LINE Developersにログイン

以下のURLからログインしましょう。
https://developers.line.me/ja/

Messaging API(ボット)をはじめるを選んで、

ログインします。

新規channel作成

ログインすると、新規channelを作る画面が出現すると思いますので、必要事項を記入し、channelを作ります。

特に迷う部分はないと思いますが、ひとつ気を付けるのであれば、「アプリ名」は実際のLINEの画面に表示される名前になるので、公開する目的に合わせてきちんと悩んだほうがいいと思います。

3. channel基本設定

channelを作成した後は、基本的な設定を行っておきましょう。

アクセストークンの発行

発行するボタンをぽちっとしてください。
このアクセストークンは、先ほどのGASのコードにコピペしてください。

Webhookの設定

「利用する」に設定してください。
そうすると、URLを記述できるようになるので、先ほど公開したWebアプリケーションのURLを入力してください。

(「https://」は記述不要です。)

接続確認

ボタンをぽちっと押して、「成功しました」と出れば、一番最初の画像でご説明した全体の流れが、きちんと処理されていることになります。

自動返信をOFF

デフォルトではONになっており、ボットの返信と、元々の定型文による自動返信がダブって送られてしまうので、OFFにしておきましょう。

4. ボットを試してみましょう!

これでボットの準備は万端です!
画面の一番下の方にあるQRコードを読み込むと、作成したchannelと友だちになる画面が出現すると思います。

友だち追加して、メッセージを送ってやると、、、

見事なオウム返しですね!

まとめ

無料でお手軽にボットが作れるって、ホントGASは素晴らしいですね。楽しいです。
サービスがWebhookを発行できるのであれば、GASでの連携は容易にできるので、色々と他にも試してみたい今日この頃です。