LINE Messaging APIとGoogleAppsScriptとCOTOHA APIで「会話するLINEチャットボット」を作ってみました。

記事構成 ①オウム返しボットを作る←イマココ ②COTOHA APIでテキストをタイプ別に分けてみる ③COTOHA APIでテキストから感情を判別してみる ④文タイプ別に返信するチャットボットを作る

↓参考記事 LINE Messaging APIとGoogle Apps ScriptとCOTOHA APIで「適当に話を聞いてくれる彼氏Bot」を作ってみた

完成画像↓ S__2670611.jpg S__2687110.jpg

概要

ちょっと仕事でさわるかもしれない、ということで少しイジってみました。 「どうせなら」とカタカタジムの記事にしてみようと試みましたが結構画像保存したり加工したり大変でしたねw また機会があれば記事投稿に挑戦しようと思います。


LINE Messaging APIを使うため、LINE Developersでプロバイダーとチャネルを作る

LINE Developers https://developers.line.biz/ja/ 登録してログインし、コンソールからプロバイダーを作成します。 S__2687110.jpg

LINE Messaging APIを選択します。 68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f31393631393536662d323032322d336233632d613064332d3364.jpg

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f66636662373531662d623737652d393663302d633530302d3936.jpg

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f38313261336236662d333933362d353166632d663238352d6563.jpg

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f30646361613937312d346433392d336362632d333835352d3164.jpg

Messaging API設定タブの下の方にある「チャネルアクセストークン」を発行しておきます(後で使用)

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f31346135636535632d383233312d396365652d666336352d3037.jpg

Google Apps Scriptをセッティングしよう

スタンドアロン型とコンテナバインド型があるらしいですが、今回はスプレットシートを使いたいのでコンテナバインド型でGASを使います。

まずスプレットシートを新規作成して、メニューの「拡張機能」から「Apps Script」を選択します。

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f32383136623930322d393938322d333931622d323263372d3934.png

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f35643832386436362d643533622d376365332d616466372d6136.jpg

とりあえず「オウム返しボット」を作ってみましょう。

※先程の「チャネルアクセストークン」を使います。


// コード.gs
//LINE Developersで取得したチャネルアクセストークンを入れる
const CHANNEL_ACCESS_TOKEN = '取得したチャネルアクセストークン';
const line_endpoint = 'https://api.line.me/v2/bot/message/reply';

//メッセーを受送信する関数
function doPost(e) {
  const json = JSON.parse(e.postData.contents);

  //返信するためのトークン取得
  const reply_token= json.events[0].replyToken;
    if (typeof reply_token === 'undefined') {
    return;
  }

  //送られたメッセージ内容を取得
  const message = json.events[0].message.text;


  const messages = [{'type': 'text', 'text': message}];    

  UrlFetchApp.fetch(line_endpoint, {
  'headers': {
      'Content-Type': 'application/json; charset=UTF-8',
      'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
  },
  'method': 'post',
  'payload': JSON.stringify({
      'replyToken': reply_token,
      'messages': messages,
  }),
  });
  return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
}

GAS 68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f38336536323337372d626565302d663530632d373038342d3165.jpg

GASのデプロイ

メニューの保存ボタンを押してコードを保存。 右上のデプロイボタンから「新しいデプロイ」を選択。 種類の選択から「ウェブアプリ」を選び、アクセスできるユーザーを「全員」にします。 68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f35383138643737632d633464342d323838612d393464662d3833.jpg

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f65363730646365322d343136632d393961332d393561322d3765.jpg

またはじめてデプロイする場合は認証を求められるかもしれません。 詳細から認証設定しましょう。 68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f63363765626536662d353164382d353766312d623264342d6665.jpg

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f34656661613931382d626534362d616136652d306632302d6364.jpg

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f32356664383934392d356536612d376539642d633330342d6237.jpg

LINE Messaging APIの設定をする。

デプロイしたら、LINE DevelopersのMessaging API設定から設定していきます。 68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f64626438323237622d306563302d333065652d343632362d6131.jpg

あいさつや応答メッセージは「無効」にしておいても良いでしょう。 また、Webhookはオンにしておきましょう。 68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f33643436376435312d386262332d343138362d366533612d3534.jpg

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f34336436393364622d393163612d373034312d393866632d3330.jpg

Webhook設定にデプロイしたGASのURLを入力し、Webhookの利用にチェックします。 その後「検証ボタン」を押してOKがでれば疎通完了です。 68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f64386136656163652d386234302d303635362d346133612d3938.jpg

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f65626366633839362d363035312d366432642d613439362d6231.jpg

QRコードからLINE公式アカウントをフォローしてみましょう。 68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f61353161373063372d323234342d303731342d346439622d3966.jpg

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f33663464333332652d656535312d363365382d363863342d3335.jpg

「オウム返しボット」ができました。 68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3236343838342f38653637646330392d396530342d323533622d356233302d3832.jpg

記事構成 ①オウム返しボットを作る←イマココ ②COTOHA APIでテキストをタイプ別に分けてみる←次! ③COTOHA APIでテキストから感情を判別してみる ④文タイプ別に返信するチャットボットを作る