Toggle navigation
Toggle navigation
This project
Loading...
Sign in
김대선
/
Recruitment_Information_chatbot
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
김대선
2021-06-08 20:24:49 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
cd4644a4a17a8ec944b4caa5c5408ac4a5b12e61
cd4644a4
1 parent
b04bb50b
회사명, 태그, 제목으로 검색 챗봇에 적용
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
148 additions
and
64 deletions
app.js
app.js
View file @
cd4644a
...
...
@@ -15,7 +15,7 @@ const data = require('./functions/dataFunctions')
const
find
=
require
(
'./functions/findFunction'
)
// 0초 0분 0시 아무날 아무달 아무년
const
saveData
=
schedule
.
scheduleJob
(
'
00 0 00
* * *'
,
data
.
save
)
const
saveData
=
schedule
.
scheduleJob
(
'
55 51 19
* * *'
,
data
.
save
)
var
app
=
express
();
app
.
use
(
bodyParser
.
json
());
...
...
@@ -28,75 +28,65 @@ app.post('/hook', function (req, res) {
console
.
log
(
'======================'
,
new
Date
()
,
'======================'
);
console
.
log
(
'[queryString]'
,
req
.
query
)
console
.
log
(
'[request]'
,
req
.
body
);
console
.
log
(
'[request source] '
,
eventObj
.
source
,
eventObj2
.
source
);
console
.
log
(
'[request message]'
,
eventObj
.
message
,
eventObj2
.
message
);
console
.
log
(
'[request postback]'
,
eventObj
.
postback
,
eventObj2
.
postback
);
const
messageData
=
find
.
byCompanyName
(
'naver'
)
console
.
log
(
'[request source] '
,
eventObj
.
source
);
console
.
log
(
'[request message]'
,
eventObj
.
message
);
console
.
log
(
'[request postback]'
,
eventObj
.
postback
);
let
messageData
const
messageResult
=
[]
let
string
let
start
let
finish
let
data
let
button
let
flag
=
true
if
(
!
eventObj
.
postback
){
let
button
if
(
eventObj
.
type
==
"message"
){
start
=
0
;
finish
=
start
+
4
}
else
{
start
=
parseInt
(
eventObj
.
postback
.
data
.
split
(
" "
)[
1
])
finish
=
start
+
4
if
(
finish
>=
messageData
.
length
){
finish
=
messageData
.
length
flag
=
false
}
}
data
=
`kakao
${
finish
}
`
button
=
{
"type"
:
"flex"
,
"altText"
:
"test FLEX"
,
"contents"
:
{
"type"
:
"bubble"
,
"body"
:
{
"type"
:
"box"
,
"layout"
:
"vertical"
,
"contents"
:
[
{
"type"
:
"button"
,
"action"
:
{
"type"
:
"postback"
,
"label"
:
"다음 보기"
,
"data"
:
data
button
=
{
"type"
:
"flex"
,
"altText"
:
"test FLEX"
,
"contents"
:
{
"type"
:
"bubble"
,
"body"
:
{
"type"
:
"box"
,
"layout"
:
"vertical"
,
"contents"
:
[
{
"type"
:
"button"
,
"action"
:
{
"type"
:
"postback"
,
"label"
:
"회사명으로 검색하기"
,
"data"
:
eventObj
.
message
.
text
+
"|||0|||"
+
"companyName"
},
"style"
:
"primary"
,
"color"
:
"#ff9a9e"
},
"style"
:
"primary"
,
"color"
:
"#0000ff"
}
]
}
}
}
console
.
log
(
start
,
finish
,
data
)
for
(
start
;
start
<
finish
;
start
++
){
string
=
"제목 : "
+
messageData
[
start
].
title
+
"\n"
+
"회사명 : "
+
messageData
[
start
].
companyName
+
"\n"
+
"tags : "
+
messageData
[
start
].
tags
.
toString
()
+
"\n"
+
"링크 : "
+
messageData
[
start
].
url
+
"\n"
messageResult
.
push
({
"type"
:
"text"
,
"text"
:
string
})
}
if
(
flag
){
messageResult
.
push
(
button
)
result
=
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
eventObj
.
replyToken
,
"messages"
:
messageResult
{
"type"
:
"button"
,
"action"
:
{
"type"
:
"postback"
,
"label"
:
"태그로 검색하기"
,
"data"
:
eventObj
.
message
.
text
+
"|||0|||"
+
"tag"
},
"style"
:
"primary"
,
"color"
:
"#fbc2eb"
},
{
"type"
:
"button"
,
"action"
:
{
"type"
:
"postback"
,
"label"
:
"제목으로 검색하기"
,
"data"
:
eventObj
.
message
.
text
+
"|||0|||"
+
"title"
},
"style"
:
"primary"
,
"color"
:
"#8fd3f4"
}
]
}
}
}
}
else
{
result
=
{
url
:
TARGET_URL
,
headers
:
{
...
...
@@ -104,16 +94,110 @@ app.post('/hook', function (req, res) {
},
json
:
{
"replyToken"
:
eventObj
.
replyToken
,
"messages"
:
messageResult
"messages"
:
[
button
]
}
}
}
request
.
post
(
result
,(
error
,
response
,
body
)
=>
{
request
.
post
(
result
,(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
res
.
sendStatus
(
200
);
res
.
sendStatus
(
200
);
}
else
if
(
eventObj
.
type
=
"postback"
){
postbackData
=
eventObj
.
postback
.
data
.
split
(
"|||"
)
if
(
postbackData
[
2
]
==
"companyName"
)
messageData
=
find
.
byCompanyName
(
postbackData
[
0
])
else
if
(
postbackData
[
2
]
==
"tag"
)
messageData
=
find
.
byTags
(
postbackData
[
0
])
else
if
(
postbackData
[
2
]
==
"title"
)
messageData
=
find
.
byTitle
(
postbackData
[
0
])
if
(
messageData
.
length
==
0
){
result
=
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
eventObj
.
replyToken
,
"messages"
:
[{
"type"
:
"text"
,
"text"
:
"검색결과가 없습니다!"
}]
}
}
request
.
post
(
result
,(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
res
.
sendStatus
(
200
);
}
else
{
start
=
parseInt
(
eventObj
.
postback
.
data
.
split
(
"|||"
)[
1
])
finish
=
start
+
4
if
(
finish
>=
messageData
.
length
){
finish
=
messageData
.
length
flag
=
false
}
button
=
{
"type"
:
"flex"
,
"altText"
:
"test FLEX"
,
"contents"
:
{
"type"
:
"bubble"
,
"body"
:
{
"type"
:
"box"
,
"layout"
:
"vertical"
,
"contents"
:
[
{
"type"
:
"button"
,
"action"
:
{
"type"
:
"postback"
,
"label"
:
"다음 보기"
,
"data"
:
postbackData
[
0
]
+
" "
+
finish
+
" "
+
postbackData
[
2
]
},
"style"
:
"primary"
,
"color"
:
"#fbc2eb"
}
]
}
}
}
for
(
start
;
start
<
finish
;
start
++
){
string
=
"제목 : "
+
messageData
[
start
].
title
+
"\n"
+
"회사명 : "
+
messageData
[
start
].
companyName
+
"\n"
+
"tags : "
+
messageData
[
start
].
tags
.
toString
()
+
"\n"
+
"링크 : "
+
messageData
[
start
].
url
+
"\n"
messageResult
.
push
({
"type"
:
"text"
,
"text"
:
string
})
}
if
(
flag
){
messageResult
.
push
(
button
)
result
=
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
eventObj
.
replyToken
,
"messages"
:
messageResult
}
}
}
else
{
result
=
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
eventObj
.
replyToken
,
"messages"
:
messageResult
}
}
}
request
.
post
(
result
,(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
res
.
sendStatus
(
200
);
}
}
});
try
{
const
option
=
{
...
...
Please
register
or
login
to post a comment