GASで専門用語を教えてくれるBotを作る

2021/5/29

前回outgoingな対話型Botのテスト用の設定を記録をしました。今回はそのBotを少しだけ賢くしてみます。

1:前回のおさらい

前回はとりかえず、こんんさサンプルコードで動かしたかと思います。

function onMessage(event) {
let response = 'こんにちは' + event.user.displayName + 'さん' + '!\n';
response += 'あなたのメッセーは\"' + event.message.text + '\"ですね。';
return { "text": response };
}

2:回答用Spreadsheetの作成

とりあえずこんな感じのSpreadsheetを作ります。

以下のようなURLだと思いますので…赤字部分をコピーしておきます。

https://docs.google.com/spreadsheets/d/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/edit#gid=0

2:コードの修正

こんな感じのコードに変更して、保存したら完成です。Headデプロイならすぐに試せます。

function onMessage(event) {

const id ='XXXXX ここにコピーしたURLのの一部を入れます';

const sheet = SpreadsheetApp.openById(id).getSheetByName("ここにシート名を入れます");

const endrow = sheet.getLastRow();

const data = sheet.getRange(2, 1, endrow-1, 3).getValues();

let count = 0;

let response = 'こんにちは、' + event.user.displayName + 'さん\n';

for(let i=0;i< data.length;i++){

word = data[i][0];

content = data[i][1];

if (word.indexOf(event.message.text) !== -1){

response += '「' + word + '」は、' + content + '\n';

count = 1;

}

}

if(count == 0){

response += '「'+ message + '」は知りませんでした…ごめんなさい。\n';

}

return { "text": response };

}

指定のシートを読み込んで…単語が部分一致したら回答。複数あったら複数回答。見つからなかったら謝るってだけのシンプルなコードですが、Spreadsheetの中身を充実させたらそれなりに使えます!