実現したいこと
LINE Bot でスプレットシートの語句を検索して応答するBotを作成しています。
検索する列を複数定義したいのですが、うまくいかず困ってます。
入力したテキストがA列とB列の中のテキストに含まれていた時、C列D列のテキストを応答するようにしたいです。
該当のソースコード
var ACCESS_TOKEN = "***"; var ss = SpreadsheetApp.openById("***"); var wordListSheets = [ss.getSheetByName('*'),ss.getSheetByName('*')]; function doPost(e){ if (typeof e === "undefined"){ return; } else { var json = JSON.parse(e.postData.contents); replyFromSheet(json) } } function getWordListFrom(sheets) { var wordList = []; sheets.forEach(sh => { var lastRow = sh.getLastRow(); if (lastRow > 0) { wordList = [...wordList, ...sh.getRange(1,1,lastRow,4).getValues()]; } }) return wordList; } function replyFromSheet(data) { var replyUrl = "https://api.line.me/v2/bot/message/reply"; var wordList = getWordListFrom(wordListSheets); var reply_token = data.events[0].replyToken; //reply token var text = data.events[0].message.text; var replyTextList = []; for(var i = 1; i < wordList.length; i++) { ***↓wordList[i][0]とwordList[i][1]の中のテキストを含むときにしたい**** if(wordList[i][0].includes(text) && text.length > 1) { let wordtext = [wordList[i][2],wordList[i][3]] replyTextList.push(wordtext.join(' ')); } } }
質問に不必要なコードは削除してます
試したこと
wordListsでA列とB列を定義してみましたが、
デプロイしても応答がなかったです。
for(var i = 1; i < wordList.length; i++) { let wordLists = [wordList[i][0],wordList[i][1]] ←試した追加コード if(wordLists.includes(text) && text.length > 1) { let wordtext = [wordList[i][2],wordList[i][3]] replyTextList.push(wordtext.join(' ')); } }
できそうな気がしますが、なかなか出来なくてヤキモキしてます。
すみませんがご教授していただけないでしょうか。
回答1件
あなたの回答
tips
プレビュー