今まで
私はLinebotをnode.jsと作成しました。linebot自体はできたし、if文を使って登録した文字を言ったら返してくれることはできました。ですが登録した文字が文章中に投稿されると返さないのでそれをなんとかしたいです。
例えばHelloと投稿するとHelloと返すLinebotだとHelloWorldと投稿してもHelloと返してくれるようにしたいのです。
そのようなことができるでしょうか?
できるならどうにすればいいでしょうか?
コード
js
1'use strict'; 2 3const express = require('express'); 4const line = require('@line/bot-sdk'); 5const PORT = process.env.PORT || 8000; 6 7const config = { 8 channelSecret: 'シークレット', 9 channelAccessToken: 'トークン' 10}; 11 12const app = express(); 13 14app.get('/', (req, res) => res.send('Hello LINE BOT!(GET)')); //ブラウザ確認用(無くても問題ない) 15app.post('/webhook', line.middleware(config), (req, res) => { 16 console.log(req.body.events); 17 18 Promise 19 .all(req.body.events.map(handleEvent)) 20 .then((result) => res.json(result)); 21}); 22 23const client = new line.Client(config); 24 25function handleEvent(event) { 26 if (event.type !== 'message' || event.message.type !== 'text') { 27 return Promise.resolve(null); 28 } 29 30 let replyText = ''; 31 if (event.message.text == "Hello" || event.message.text == "こんにちは") { 32 33 const words = [ 34 'Hello', 35 'こんにちは' 36 ]; 37 replyText = words[Math.floor(Math.random() * words.length)]; 38 39 } 40 41 return client.replyMessage(event.replyToken, { 42 43 type: 'text', 44 text: replyText 45 }); 46 47} 48 49// app.listen(PORT); 50(process.env.NOW_REGION) ? module.exports = app: app.listen(PORT); 51console.log(`Server running at ${PORT}`);
最後に
多分if (event.message.text == "Hello" || event.message.text == "こんにちは")
この部分を変えるやり方か自然言語解析などの技術を使うと思っています。よろしくお願いします。
開発環境
- Messaging API
- Node.js(v10.14.2)
- now
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/22 03:59
2019/06/22 04:09