app.js
3.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
const express = require('express');
const cheerio = require('cheerio');
const fs = require('fs');
const path = require('path');
const HTTPS = require('https');
const domain = "2020105107.osschatbot.cf"
const sslport = 23023;
const app = express();
app.use(express.urlencoded({ extended: false }));
app.use(express.json());
app.post('/message', (req, res) => {
const question = req.body.userRequest.utterance;
const goMain = '처음으로';
var data;
if(question == "도움말"){
data ={
"version": "2.0",
"template": {
"outputs": [
{
"listCard": {
"header": {
"title": "KHU 학사정보 알리미를 소개합니다."
},
"items": [
{
"title": "KHU 학사정보 알리미",
"description": "챗봇으로 손쉽게 알아보는 학사정보",
"imageUrl": "https://mblogthumb-phinf.pstatic.net/20140716_293/envicontest_1405437648963lV4y4_GIF/University_Seal.gif?type=w2",
"link": {
"web": ""
}
},
{
"title": "오늘의 학식이 궁금하세요?",
"description": "지금 바로 알아보세요.",
"imageUrl": "https://cdn-icons.flaticon.com/png/128/561/premium/561611.png?token=exp=1638429953~hmac=d25a53d3500363101c3364408df33e55",
"link": {
"web": ""
}
},
{
"title": "셔틀버스 정보 알아보기",
"description": "셔틀버스 정보 알아보기",
"imageUrl": "https://cdn-icons-png.flaticon.com/128/808/808375.png",
"link": {
"web": ""
}
}
],
}
}
]
}
}
}
if (question == "서울캠퍼스") {
data = {
'version': '2.0',
'template': {
'outputs': [{
'simpleImage': {
'imageUrl': "https://coop.khu.ac.kr/wp-content/uploads/2021/11/20211129-1301x2048.png",
'altText' : "서울캠퍼스 식단입니다."
}
}],
'quickReplies': [{
'label': goMain,
'action': 'message',
'messageText': goMain
}]
}
}
}else if (question == "국제캠퍼스") {
data = {
'version': '2.0',
'template': {
'outputs': [{
'simpleImage': {
'imageUrl': "",
'altText' : "국제캠퍼스 식단입니다."
}
}],
'quickReplies': [{
'label': goMain,
'action': 'message',
'messageText': goMain
}]
}
}
}
res.json(data);
});
try {
const option = {
ca: fs.readFileSync('/etc/letsencrypt/live/' + domain +'/fullchain.pem'),
key: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/privkey.pem'), 'utf8').toString(),
cert: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/cert.pem'), 'utf8').toString(),
};
HTTPS.createServer(option, app).listen(sslport, () => {
console.log(`[HTTPS] Server is started on port ${sslport}`);
});
} catch (error) {
console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.');
console.log(error);
}