酒とITと私

LINEのチャットBotを作る – まずはオウム返し

LINEでチャットBotを作ろう!第一弾!まずは、オウム返しを作ります!もちろん、できるだけプログラミング経験ない人にも分かるようにいきます!

スポンサーリンク

目次

  1. チャットBotとは?
  2. アカウントの作成
  3. Botの作成
  4. オウム返しのコーディング
  5. 公開!

チャットBotとは?

さてさて、チャットBotってそもそもなんでしょうね?せっかくなので、うちにいるLINEのClova WAVEに聞いてみましたw

Clova チャットBotって何?

それについて今は分からないんですけど、勉強しておきますね。

このあと、「チャット」と「Bot」に分解して聞いてみたりしたが、あまりうまくいかず、、、笑

ということで、こちらによると、

「チャットボット」とは、「チャット」と「ボット」をかけわせた言葉です(英語では「chatbot」や「chatterbot」)。ボットとは「ロボット」の略称であり、人がコンピューターを用いていた作業を自動的に実行するプログラムのことです。チャットボットはテキストや音声を通じて、会話を自動的に行うプログラムです。別名「人工無脳(じんこうむのう)」もしくは「人工無能」。

ですって!最近、企業アカウントとかいろいろできたり、マイクロソフトの女子高生AI「りんな」でも話題のやつですね!今回はそれを自前で作ってみようと。ででん。

アカウントの作成

さて、今回はLINEでチャットBotを作りますのでアカウントを作成していきます。といっても、LINEのディベロッパーページにLINEのアカウントでログインするだけやけど、、、

こちらを開くと

こんなカッコいいページが出てくる。カッコいい。僕好きなんですよね。このページ。そしてもう、ここ押してくださいと言わんばかりの、Messaging API(ボット)を始めるをクリックします。すると、

こんな感じの画面が出てくるかと思いますんで、いつも使っているLINEのメアドとパスワードでログインしてください。そうすると、スマフォに認証コード的なやつが送られるので、さくっと認証をお願いします。これでアカウントはOK!

Botを作成する。

さてさて、それではBotを作っていきましょう。

プロバイダーを作成する。

Botはプロバイダーと呼ばれる、まあ、Botの管理者みたいなものの下に作られることになります。ということで、まずはプロバイダーを作成します。先ほどのログイン画面からログインすると下記のような画面になります。

これが、Botを作ったり、管理したりする画面ですね。こちらもカッコいい。左の方にある「新規プロバイダー作成」をクリックします。するとこんな画面、

言われるがままに、プロバイダー名を入力していきましょう。すると、

リアルタイムにでてくるううううううう。すげえ。LINEすげええ。

はい。落ち着きましょう。ここで、確認をクリックすると、プロバイダーが完成します。こんな画面に遷移します。

Botを作成する。

やったあ。次は、やっとこさBotを作っていきます! Messaging APIをクリック!すると、なんか色々書いてください的な画面になるので、適当に設定していきます。

リアルタイムにでてくるううううううう。すげえ。LINEすげええ。(2回目)

はい。落ち着きます。でも、普通にすごいですよね。作りながら最終的なイメージも湧きますし。その他もろもろの設定をしていきます。

プランはDeveloper Trialに設定してください。あと、業種とメアドは適当にどうぞ。(文化人ってなんやろう、、、)確認をクリックしたら完成!

めでたしめでたし。ただ、設定が完了していませんと言われたので、そこまでいうならしゃーなし見てやろう。クリックすると、なんか色々設定する項目が出てくるのですが、とりあえず今やって欲しいことは2つです。1つは、アクセストークンというやつを発行すること。右の方にある再発行というボタンを押すと何時間か聞かれるので適当に24時間くらい選んで発行しましょう。このくっそ長いカオスなやつは後で使います。2つ目は、Webhook送信を「利用する」にすることです。右の鉛筆マークを触ると編集できますので、「利用する」にチェックして更新してください。他の設定はあとからやります。

オウム返しのコーディング

今回も、Google Apps Scriptを使ってコーディングをしていきます。GASの使い方については、以前の投稿参照。

// LINEの認証を突破するために必要なお作法
// botのChannel基本設定の画面で発行した鬼のように長い文字列を""の中にセット
var secret_token = "XXXXXXXXXX"
var secret = "Bearer " + secret_token;

function doPost(e) {
  // LINEから送信されたデータを取得(テキストメッセージそのものではない。)
  var json = e.postData.getDataAsString();
  
  // LINEから送信されてきたデータから、リプライトークン(返信するために必要)を取得
  var token = JSON.parse(json).events[0].replyToken;
  
  // 送信されてきたテキストを取り出し
  var text = JSON.parse(json).events[0].message.text;
  
  // リプライを返すAPIのURI
  var url = "https://api.line.me/v2/bot/message/reply";
  
  // お作法① HTTPヘッダーの設定
  var headers = {
    "Content-Type" : "application/json",
    "Authorization":secret
  };

  // お作法② 下記の構造でリクエストボディにデータを持つ
  var data = {
    "replyToken" : token, 
    "messages" : [{
      "type" : "text",
      "text" : text
    }]
  };

  var options = {
    "method" : "POST",
    "headers" : headers,
    "payload" : JSON.stringify(data)
  };

  // 返信!
  return UrlFetchApp.fetch(url, options);  
}

ちょっと、カレンダーよりは難しいかもしれませんが、、、がんばりましょう。

公開!

さて、コーディングも終わったことですので、公開していきましょう!若干の設定を行って、あとは動作確認をします。

Google Apps Scriptのプロジェクトの公開

先ほどコーディングしたプロジェクトを公開します。GASのエディターの、上の方にある「公開」をクリック。そして、「ウェブアプリケーションとして導入」

こんな感じの設定画面になりますので、次のユーザーとしてアプリケーションを実行を「自分」にして、アプリケーションにアクセスできるユーザーを、「全員(匿名ユーザー含む)」に設定します。

そして、「導入!」をクリックすると、なにやら色々許可とか求められますが、自分のGoogleアカウントを選択して、許可しておいてください。するとこんな感じ。作成がうまくいった旨通知されますので、現在のウェブアプリケーションのURLとやらをこぴっておいてください。

Webhook URLの設定

さて、お次はLINE bot側の設定です。先ほど中途半端にした、Channel基本設定のページを開いてください。編集して欲しいところは2つです。1つ目は、Webhook URLです。先ほど、GASでプロジェクトを公開したときにこぴった「現在のウェブアプリケーションのURL」をここに張り付けます。https://は取ってください。2つ目は、自動応答メッセージというやつです。こいつを切っておかないとbotの方の処理が動かないので、鉛筆マークから「利用しない」に設定しておきます。こんな感じ、

さて、以上で設定は完了です!Channel基本設定ページの下の方にある2次元バーコードを読み取って適当に何か送ってみましょう!笑、日ごろの行いがよく、幸せなあなたならこんな感じになるはず、、、笑

オウム返しが返ってこない人は、アクセストークンの設定をしていないか、GASのプロジェクトを公開するときに、全員に公開する設定にしていないかどちらかだと思いますのでその辺を確認してください。。。

次は、外部の会話APIを使って、それなりにちゃんと会話ができるものを作ります~