LINEチャットボット(オウム返しボット)

LINEBOT

以下の点に注意してから作業を始めてください!

  • パソコンで作業をする
  • ブラウザの自動翻訳機能をオフにする

LINE Developersに登録・設定

1.https://developers.line.biz/ja/にアクセスします。

2.ページ右上のコンソールにログインをクリックします。

3.前回と同じようにLINEアカウントでログインを押し、メールアドレスパスワードを入力するか、QRコードログインします。

4.ログイン後、ページ中央の下にある新規プロバイダー作成をクリックします。

5.新規プロバイダー作成のページで、プロバイダー名を入力後に作成をクリックします。

プロバイダー名は自分の好きな名前で大丈夫です。

6.続いてmessageAPIをクリックし、チャネルを作成します。

7.チャネル登録ページが表示されるので、入力必須項目をすべて記入し作成を押します。

*任意は書かなくても大丈夫です。

*ここで設定したチャネル名はLINEで実際に表示されるBOTの名前になります。

8.次にMassaging API設定を選択、QRコードをLINEで読み込んでから友達追加をします。

9.友達追加後、下にスクロールしてチャネルアクセストークンの右にある発行を押します。

*このチャネルアクセストークンは後程使います

10.応答メッセージ編集をクリックし、応答設定を下記と同じ設定に変更します。

  • チャット      ⇒ オフ
  • あいさつメッセージ ⇒ オフ
  • 応答メッセージ   ⇒ オフ
  • Webhook      ⇒ オン

以上でLINE Developersの登録設定は終了です。

GAS(Google Apps Script)の設定

1.https://www.google.comを開き、ページ右上からログインします。

2.ログイン後ページ右上のアイコンをクリックし、下に表示されたスプレッドシートをクリックします。

3.新しいスプレッドシート作成の空白をクリックします。

4.下のページに移動したら、上側にある拡張機能からApps Scriptをクリックします。

5.Apps Scriptにはプログラミングを書いていきます。

6.最初からあるプログラムはすべて削除し、以下のプログラムを張り付けます。

var CHANNEL_ACCESS_TOKEN = 'LINEのチャネルアクセストークン';

function doPost(e) {
  var post_json = JSON.parse(e.postData.contents);
  var reply_token = post_json.events[0].replyToken;
  if (typeof reply_token === 'undefined') {
    return;
  }
  var message = post_json.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': message,
      }],
    }),
  });
  return ContentService.createTextOutput(JSON.stringify({ 'content': 'post ok' })).setMimeType(ContentService.MimeType.JSON);
}

7.プログラム内のLINEのチャネルアクセストークンは、先ほど発行したのを使います。

*再発行は押さないでください。

8.入力が終わったら、プロジェクトの保存をクリックします。

9.デプロイをクリックし、下に表示される新しいデプロイをクリックします。

10歯車アイコンからウェブアプリをクリックし、アクセスできるユーザー全員にします。

アクセスを承認をクリックします。

自分のGoogleアカウントをクリックします。

許可をクリックします。

ウェブアプリのURLをコピーします。

11.LINE Developersに戻り、Webhook設定にコピーしたURLを貼ります。Webhookの利用のチェックも忘れずに!

12.検証もしくは更新をクリックし、成功と表示されたら設定完了です。

13.実際にLINEを使い、何かトークを送り返してくれば完成になります。

オウム返しのその先へ

下記のプログラムに書き換えることで、「こんにちは」に対してオウム返しで「こんにちは」ではなく、「挨拶ありがとう!」と返信されるようになります。

var CHANNEL_ACCESS_TOKEN = 'LINEのチャネルアクセストークン';

function doPost(e) {
  var post_json = JSON.parse(e.postData.contents);
  var reply_token = post_json.events[0].replyToken;
  if (typeof reply_token === 'undefined') {
    return;
  }
  var message = post_json.events[0].message.text;
  var url = 'https://api.line.me/v2/bot/message/reply';

  if (message == "こんにちは") {
    message = "挨拶ありがとう!";
  }
  else if (message == "さようなら") {
    message = "またね!";
  }
  else {
    message = post_json.events[0].message.text;
  }

  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': message,
      }],
    }),
  });
  return ContentService.createTextOutput(JSON.stringify({ 'content': 'post ok' })).setMimeType(ContentService.MimeType.JSON);
}

デプロイを押し、デプロイを管理をクリックします。

*新しいデプロイは押さないでください、ウェブアプリのURLが変わってしまいます。

右上のペンアイコン(編集)をクリックします。

バージョンの欄右にあるをクリックします。

バージョン下に表示される新しいバージョンをクリックします。

バージョンが新しいバージョンに変わったのを確認したら、右下のデプロイをクリックします。

実際にLINE会話してみましょう。

メッセージの中身を変える場合は下の部分を書き換えます。

赤枠のメッセージが送られると、青枠のメッセージが返信されます。

こんにちは挨拶ありがとう!を好きなメッセージに書き換えてみましょう

 if (message == "こんにちは")
 {
   message = "挨拶ありがとう!";
 }
 else if (message == "さようなら")
 {
   message = "またね!";
 }
 else
 {
   message = post_json.events[0].message.text;
 }

上のメッセージを下のメッセージに書き換えてみます。

 if (message == "おはようございます")
 {
   message = "いい天気ですね";
 }
 else if (message == "おやすみなさい")
 {
   message = "いい夢を!";
 }
 else
 {
   message = post_json.events[0].message.text;
 }

メッセージが変わっているのが確認できます。