(第2回)チャットボットを作ってみよう(Massaging API + GAS)

(第2回)チャットボットを作ってみよう(Massaging API + GAS)

目次

はじめに
Goolge Apps Script(GAS)の準備
コード作成
公開
使ってみる
次回予告

はじめに

前回はチャンネル作成まで実施しました。今回は、Google Apps Script(GAS)でのコーディングと公開及び、webhookの設定までを行い、完成まですすめていきます。

Google Apps Script(GAS)の準備

GASをアプリとして、インストールしてない場合は、下記方法にて可能です。
※GASを使う方法は色々ありますが、今回はアプリ追加をして使用する方法をご説明しています。

1、Google Drive上の【 新規 】 -【 その他 】 -【 アプリの追加 】「Google Apps Script」をインストール

ドライブの新規より、アプリを追加を選択
Google Apps Scriptを検索してクリックし、画面の指示に従ってインストール

2、インストール後、アプリ一覧に追加されますので、クリックして新規プロジェクトを開きます。

アプリ一覧より、Google Apps Scriptをクリックすると新規のプロジェクトが開きます。

コード作成

コードを作成していきますが、今回は送られたメッセージに、「だワン」を付けた形で応答を返すスクリプトを作成します。

// LINE developersのMessagingAPIに記載のアクセストークン
var ACCESS_TOKEN = '発行したチャネルアクセストークンをここに入力';

function doPost(e) {
  // 返信用トークンを取得
  var replyToken = JSON.parse(e.postData.contents).events[0].replyToken;
  
  // ユーザーのメッセージを取得
  var userMessage = JSON.parse(e.postData.contents).events[0].message.text;
  
  // 返信メッセージ用のAPI URL
  var url = 'https://api.line.me/v2/bot/message/reply';

  // 返信メッセージ(今回は送られたメッセージの語尾に「だワン」を追加)
  var replyMessage = userMessage + 'だワン'
  
  
  UrlFetchApp.fetch(url, {
    'headers': {
      'Content-Type': 'application/json; charset=UTF-8',
      'Authorization': 'Bearer ' + ACCESS_TOKEN,
    },
    'method': 'post',
    'payload': JSON.stringify({
      'replyToken': replyToken,
      'messages': [{
        'type': 'text',
        'text': replyMessage,
      }],
    }),
    });
  return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
}

また、一番上に定義されているACCESS_TOKEN変数はLINE Developersのサイトで発行した チャネル アクセストークンを設定します。 (今後、色々設定していくので、引き続き開きっぱなしにしておいてください)


LineDevelopersサイトで発行したトークンを設定します。

あと、余談ですが・・・前回はLINE Developersの画面が英語版のまま進めてしまっていたのですが、日本語版でも表示可能です。
(当時知らずにそのまま進めてしまっていました。)
LINE Developers画面の右下より、言語の変更が可能です。が、今回はこのまま英語にて進めます

LineDevelopersサイトは日本語での表示が可能です

公開

コードが完成したら、保存し、Webサービスとして公開します。

1、エディタのメニューより、【公開】-【ウェブアプリケーションとして導入…】をクリックします。

2、公開設定画面が表示されます。
  最後の「Who has access to the app:」項目は、「Anyone, even Anonymous」変更します。
(日本語だと、「全員 (匿名ユーザーを含む)」)

最後の公開範囲を変更しないと、使うことができませんので注意

3、【 Deployをクリックします。

4、表示されるウィンドウを進めていき、最後に表示されるURLをコピーしておきます。

5、LINE Developersの「Webhook URL」の【Edit(編集)】をクリックし、4でコピーしたURLを設定します。

6、設定後、【 Verify (検証)】ボタンより、URLを検証をしておきましょう。問題なければ、成功してる旨のメッセージが表示されます。

使ってみる

早速使ってみます。うまくいっていれば、語尾に「だワン」が付いた形で返答があるはずです。

こんにちは、と送ってみると・・・

なんか余計なメッセージが表示されました。
これは、うっかりしてまして、LINE Developersの設定にて、LINE自体で設定されている自動応答がオンのまでした。こちらをオフにしておきます。

1、LINE Developersの「LINE Official Account feature( LINE公式アカウント機能)」(先ほどwebhook URLを設定した箇所のすぐ下にあります)の「 Auto-reply messages( 応答メッセージ)」の【Edit(編集)】をクリックします。

2、LINE Official Account Managerが開きますので、【応答設定】-【詳細設定】-【応答メッセージ】オフにします。

※今回は、オフにしましたが、このようにコードをかかなくてもLINE Official Account ManagerにてBOTの設定が可能です。興味のある方は、是非こちら使ってみてください。

さて、再度LINEにて入力してみます。

うまくいきました!

次回予告

今回は、GASにてコード作成から公開まで基本的な流れを説明させていただきました。
次回は、せっかくGASを使用しているのでGoogle Appsの機能を連携し、BOTの機能を増やしていこうと思います。