Toggle navigation
Toggle navigation
This project
Loading...
Sign in
최재웅
/
menu_recommand_webpage
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
taegwon
2022-06-07 20:05:35 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
83a270a1a3f69e7c8c1836edbf48d2ed8557ee6f
83a270a1
1 parent
57780f44
fix app.js to send and gather message according to answer
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
110 additions
and
148 deletions
CHATBOT/app.js
CHATBOT/app.js
View file @
83a270a
var
end
=
'not'
;
var
count
=
0
;
var
n
=
1
;
var
choosen
=
new
Array
();
var
opt_1
=
[
'Korean cuisine'
,
'Chinese food'
,
'Japanese food'
,
'Western food'
,
'Guitar'
];
var
express
=
require
(
'express'
);
const
request
=
require
(
'request'
);
const
TARGET_URL
=
'라인 URL'
...
...
@@ -20,7 +17,7 @@ const res = require('express/lib/response');
var
app
=
express
();
app
.
use
(
bodyParser
.
json
());
app
.
post
(
'/hook'
,
function
(
req
,
res
)
{
n
=
1
;
var
eventObj
=
req
.
body
.
events
[
0
];
var
source
=
eventObj
.
source
;
var
message
=
eventObj
.
message
;
...
...
@@ -30,133 +27,49 @@ app.post('/hook', function (req, res) {
console
.
log
(
'[request]'
,
req
.
body
);
console
.
log
(
'[request source] '
,
eventObj
.
source
);
console
.
log
(
'[request message]'
,
eventObj
.
message
);
// switch (count) {
// case 0:
if
(
eventObj
.
message
.
text
==
'start'
)
{
count
++
;
start_msg
(
eventObj
.
replyToken
,
eventObj
.
message
.
text
);
sleep
(
5000
);
for
(
var
i
=
0
;
i
<
5
;
i
++
)
}
else
if
(
eventObj
.
message
.
text
==
'y'
&&
count
==
1
)
{
option
(
eventObj
.
replyToken
,
opt_1
[
i
]);
console
.
log
(
opt_1
[
i
]);
n
++
;
sleep
(
5000
);
}
opt_1
(
eventObj
.
replyToken
,
eventObj
.
message
.
text
);
}
else
if
((
eventObj
.
message
.
text
===
'1'
||
eventObj
.
message
.
text
===
'2'
||
eventObj
.
message
.
text
===
'3'
||
eventObj
.
message
.
text
==
'4'
||
eventObj
.
message
.
texts
==
'5'
)
&&
count
==
1
)
{
choosen
.
push
(
eventObj
.
message
.
text
);
count
++
;
opt_2
(
eventObj
.
replyToken
,
eventObj
.
message
.
text
);
}
else
if
((
eventObj
.
message
.
text
===
'1'
||
eventObj
.
message
.
text
===
'2'
||
eventObj
.
message
.
text
===
'3'
)
&&
count
==
2
)
{
choosen
.
push
(
eventObj
.
message
.
text
);
count
++
;
opt_3
(
eventObj
.
replyToken
,
eventObj
.
message
.
text
);
}
else
if
((
eventObj
.
message
.
text
===
'1'
||
eventObj
.
message
.
text
===
'2'
)
&&
count
==
3
)
{
choosen
.
push
(
eventObj
.
message
.
text
);
count
++
;
opt_4
(
eventObj
.
replyToken
,
eventObj
.
message
.
text
);
}
else
if
((
eventObj
.
message
.
text
===
'1'
||
eventObj
.
message
.
text
===
'2'
)
&&
count
==
4
)
{
choosen
.
push
(
eventObj
.
message
.
text
);
count
++
;
opt_5
(
eventObj
.
replyToken
,
eventObj
.
message
.
text
);
}
else
if
((
eventObj
.
message
.
text
===
'1'
||
eventObj
.
message
.
text
===
'2'
)
&&
count
==
5
)
{
choosen
.
push
(
eventObj
.
message
.
text
);
count
++
;
}
// break;
// case 1:
// if (eventObj.message.text === '1' || eventObj.message.text === '2' || eventObj.message.text === '3' || eventObj.message.text == '4' || eventObj.message.texts == '5') {
// q_1(eventObj.replyToken, eventObj.message.text);
// } else {
// request.post(
// {
// url: TARGET_URL,
// headers: {
// 'Authorization': `Bearer ${TOKEN}`
// },
// json: {
// "replyToken": eventObj.replyToken,
// "messages": [
// {
// "type": "text",
// "text": "Please choose a number between 1 to 5!"
// }
// ]
// }
// }, (error, response, body) => {
// console.log(body)
// });
// }
// break;
// case 2:
// if (eventObj.message.text === '1' || eventObj.message.text === '2' || eventObj.message.text === '3') {
// q_2(eventObj.replyToken, eventObj.message.text);
// } else {
// request.post(
// {
// url: TARGET_URL,
// headers: {
// 'Authorization': `Bearer ${TOKEN}`
// },
// json: {
// "replyToken": eventObj.replyToken,
// "messages": [
// {
// "type": "text",
// "text": "Please choose a number between 1 to 3!"
// }
// ]
// }
// }, (error, response, body) => {
// console.log(body)
// });
// }
// break;
// case 3:
// if (eventObj.message.text === '1' || eventObj.message.text === '2' || eventObj.message.text === '3') {
// q_2(eventObj.replyToken, eventObj.message.text);
// } else {
// request.post(
// {
// url: TARGET_URL,
// headers: {
// 'Authorization': `Bearer ${TOKEN}`
// },
// json: {
// "replyToken": eventObj.replyToken,
// "messages": [
// {
// "type": "text",
// "text": "Please choose a number between 1 to 3!"
// }
// ]
// }
// }, (error, response, body) => {
// console.log(body)
// });
// }
// break;
// case 4:
// if (eventObj.message.text === '1' || eventObj.message.text === '2') {
// q_4(eventObj.replyToken, eventObj.message.text);
// } else {
// request.post(
// {
// url: TARGET_URL,
// headers: {
// 'Authorization': `Bearer ${TOKEN}`
// },
// json: {
// "replyToken": eventObj.replyToken,
// "messages": [
// {
// "type": "text",
// "text": "Please choose a number between 1 to 2!"
// }
// ]
// }
// }, (error, response, body) => {
// console.log(body)
// });
// }
// break;
// case 5:
// end = 'end';
// break;
// default:
// break;
// }
res
.
sendStatus
(
200
);
for
(
var
i
=
0
;
i
<
5
;
i
++
)
{
console
.
log
(
choosen
[
i
]);
}
});
function
start_msg
(
replyToken
,
message
)
{
request
.
post
(
async
function
start_msg
(
replyToken
,
message
)
{
await
request
.
post
(
{
url
:
PAPAGO_URL
,
headers
:
{
...
...
@@ -164,7 +77,7 @@ function start_msg(replyToken, message) {
'X-Naver-Client-Id'
:
`
${
PAPAGO_ID
}
`
,
'X-Naver-Client-Secret'
:
`
${
PAPAGO_SECRET
}
`
},
body
:
'source=en&target=ko&text='
+
"Hi This is Menu recommend Chatbot! If you follow the instructions, I will recommend the menu"
,
body
:
'source=en&target=ko&text='
+
"Hi This is Menu recommend Chatbot! If you follow the instructions, I will recommend the menu
. 진행하시겠습니까?(y/n)
"
,
json
:
true
},
(
error
,
response
,
body
)
=>
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
...
...
@@ -190,12 +103,10 @@ function start_msg(replyToken, message) {
});
}
});
sleep
(
5000
);
}
function
option
(
replyToken
,
message
)
{
request
.
post
(
async
function
opt_1
(
replyToken
,
message
)
{
await
request
.
post
(
{
url
:
PAPAGO_URL
,
headers
:
{
...
...
@@ -203,7 +114,7 @@ function option(replyToken, message)
'X-Naver-Client-Id'
:
`
${
PAPAGO_ID
}
`
,
'X-Naver-Client-Secret'
:
`
${
PAPAGO_SECRET
}
`
},
body
:
'source=en&target=ko&text='
+
n
+
"."
+
message
,
body
:
'source=en&target=ko&text='
+
"1.Korean cuisine 2.Chinese food 3.Japanese food 4.Western food 5.Guitar"
,
json
:
true
},
(
error
,
response
,
body
)
=>
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
...
...
@@ -229,12 +140,23 @@ function option(replyToken, message)
});
}
});
sleep
(
5000
);
}
function
q_1
(
replyToken
,
msg
)
{
count
++
;
choosen
.
push
(
msg
);
async
function
opt_2
(
replyToken
,
message
)
{
await
request
.
post
(
{
url
:
PAPAGO_URL
,
headers
:
{
'Content-Type'
:
'application/x-www-form-urlencoded; charset=UTF-8'
,
'X-Naver-Client-Id'
:
`
${
PAPAGO_ID
}
`
,
'X-Naver-Client-Secret'
:
`
${
PAPAGO_SECRET
}
`
},
body
:
'source=en&target=ko&text='
+
"1.고기 2.해산물 3.기타"
,
json
:
true
},
(
error
,
response
,
body
)
=>
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
console
.
log
(
body
.
message
);
var
transMessage
=
body
.
message
.
result
.
translatedText
;
request
.
post
(
{
url
:
TARGET_URL
,
...
...
@@ -246,18 +168,32 @@ function q_1(replyToken, msg) {
"messages"
:
[
{
"type"
:
"text"
,
"text"
:
"Choose a number\n1. 고기\n2. 해산물\n3. 기타"
"text"
:
transMessage
}
]
}
},
(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
}
});
}
function
q_2
(
replyToken
,
msg
)
{
count
++
;
choosen
.
push
(
msg
);
async
function
opt_3
(
replyToken
,
message
)
{
await
request
.
post
(
{
url
:
PAPAGO_URL
,
headers
:
{
'Content-Type'
:
'application/x-www-form-urlencoded; charset=UTF-8'
,
'X-Naver-Client-Id'
:
`
${
PAPAGO_ID
}
`
,
'X-Naver-Client-Secret'
:
`
${
PAPAGO_SECRET
}
`
},
body
:
'source=en&target=ko&text='
+
"1.매운 음식 2.안 매운 음식"
,
json
:
true
},
(
error
,
response
,
body
)
=>
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
console
.
log
(
body
.
message
);
var
transMessage
=
body
.
message
.
result
.
translatedText
;
request
.
post
(
{
url
:
TARGET_URL
,
...
...
@@ -269,18 +205,32 @@ function q_2(replyToken, msg) {
"messages"
:
[
{
"type"
:
"text"
,
"text"
:
"Choose a number\n1. 뜨거운 음식\n2. 찬 음식"
"text"
:
transMessage
}
]
}
},
(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
}
});
}
function
q_3
(
replyToken
,
msg
)
{
count
++
;
choosen
.
push
(
msg
);
async
function
opt_4
(
replyToken
,
message
)
{
await
request
.
post
(
{
url
:
PAPAGO_URL
,
headers
:
{
'Content-Type'
:
'application/x-www-form-urlencoded; charset=UTF-8'
,
'X-Naver-Client-Id'
:
`
${
PAPAGO_ID
}
`
,
'X-Naver-Client-Secret'
:
`
${
PAPAGO_SECRET
}
`
},
body
:
'source=en&target=ko&text='
+
"1.국물이 있는 음식 2.국물이 없는 음식"
,
json
:
true
},
(
error
,
response
,
body
)
=>
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
console
.
log
(
body
.
message
);
var
transMessage
=
body
.
message
.
result
.
translatedText
;
request
.
post
(
{
url
:
TARGET_URL
,
...
...
@@ -292,18 +242,32 @@ function q_3(replyToken, msg) {
"messages"
:
[
{
"type"
:
"text"
,
"text"
:
"Choose a number\n1. 국물\n2. 국물 없는 음식"
"text"
:
transMessage
}
]
}
},
(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
}
});
}
function
q_4
(
replyToken
,
msg
)
{
count
++
;
choosen
.
push
(
msg
);
async
function
opt_5
(
replyToken
,
message
)
{
await
request
.
post
(
{
url
:
PAPAGO_URL
,
headers
:
{
'Content-Type'
:
'application/x-www-form-urlencoded; charset=UTF-8'
,
'X-Naver-Client-Id'
:
`
${
PAPAGO_ID
}
`
,
'X-Naver-Client-Secret'
:
`
${
PAPAGO_SECRET
}
`
},
body
:
'source=en&target=ko&text='
+
"1.차가운 음식 2.뜨거운 음식"
,
json
:
true
},
(
error
,
response
,
body
)
=>
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
console
.
log
(
body
.
message
);
var
transMessage
=
body
.
message
.
result
.
translatedText
;
request
.
post
(
{
url
:
TARGET_URL
,
...
...
@@ -315,19 +279,17 @@ function q_4(replyToken, msg) {
"messages"
:
[
{
"type"
:
"text"
,
"text"
:
"Choose a number\n1. 매운 음식\n2. 안매운 음식"
"text"
:
transMessage
}
]
}
},
(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
}
});
}
function
sleep
(
ms
)
{
const
wakeUpTime
=
Date
.
now
()
+
ms
;
while
(
Date
.
now
()
<
wakeUpTime
)
{}
}
try
{
const
option
=
{
...
...
Please
register
or
login
to post a comment