質問: 'どこの天気を見ますか?' { UrlFetchApp.fetch(url, { 'headers': { 'Content-Type': 'application/json; charset=UTF-8', 'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN, }, 'method': 'post', 'payload': JSON.stringify({ 'replyToken': replyToken, 'messages': [{ 'type': 'text', 'text': message, }], }), }); return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON); } } (続く処理) ``` ### わからないこと この後、(続く処理)の部分はどの様に指示するのが適切なのかがわかりません。
回答: * 会話履歴のデータベース構築 このへんを見ると`JSON.parse(e.postData.contents).events[0].source.type`に"user","group","room"が`JSON.parse(e.postData.contents).events[0].source.userId`などにidが、それぞれ入っているので、ユーザ、ルーム、グループごとに会話履歴を、データとして保存しておく必要があります(タイムアウトも考えると時刻も残っている必要がある) また応答内容によっては、ボット側の返信も残す必要があるかもしれない。 * 会話履歴に基づく返答 webhookで送信が来たときに、上にかいた送信元のタイプとそれに対応するIdから、直近の会話履歴を探す。先の会話(ボット側の返答も含め)から、継続メッセージであることを識別して、`if(userMessage == '東京'){`みたいな分岐をする。 フローとしては、 ``` 着呼 →idからタイムアウトしていない会話の検索 →無 →初期対応 →有 →会話継続のパターンを特定 →パターンAの応答 →パターンBの応答 ... ``` みたいな感じですかね。 分かりにくいですね。すみません。