Showing
4 changed files
with
295 additions
and
140 deletions
1 | -var express = require('express') | 1 | +var express = require('express'); |
2 | - , http = require('http') | 2 | +const request = require('request'); |
3 | - , path = require('path'); | 3 | +const bodyParser = require('body-parser'); |
4 | - | 4 | +var app = express(); |
5 | -var request = require('request'); | 5 | +var static = require('serve-static'); |
6 | - | ||
7 | -var bodyParser = require('body-parser') | ||
8 | - , cookieParser = require('cookie-parser') | ||
9 | - , static = require('serve-static') | ||
10 | - , errorHandler = require('errorhandler'); | ||
11 | - | ||
12 | 6 | ||
13 | -var expressSession = require('express-session'); | 7 | +const fs = require('fs'); |
8 | +const path = require('path'); | ||
9 | +const HTTPS = require('https'); | ||
10 | +const TARGET_URL = 'https://api.line.me/v2/bot/message/reply' | ||
11 | +const TOKEN = 'sqNjA99TptppqvcoVFAnU7Kawsl+s7l+JgnZ7r2is97qrFQraIn0sLQ6mTsIPvXLG7FNK34rvjkXbgwuy0/bgrUn4J5eYPn4H/IH27MdimpiXo/yv+obIN9IKlqR+EF2gLmuXSxMU/LWzyGxCk1G0gdB04t89/1O/w1cDnyilFU=' | ||
12 | +//const PAPAGO_URL = 'https://openapi.naver.com/v1/papago/n2mt' | ||
13 | +//const PAPAGO_ID = 'AH9WUFCtTrz9xnJ6dpxB' | ||
14 | +//const PAPAGO_SECRET = 'um7UxSvbxD' | ||
14 | 15 | ||
15 | -var app = express(); | 16 | +const domain = "www.chyoss.tk" |
17 | +const sslport = 23023; | ||
16 | 18 | ||
19 | +app.use(bodyParser.json()); | ||
17 | 20 | ||
18 | -app.set('port', process.env.PORT || 3000); | 21 | +var isstart = true; |
22 | +//전역변수 선언 | ||
19 | 23 | ||
20 | // body-parser를 이용해 application/x-www-form-urlencoded 파싱 | 24 | // body-parser를 이용해 application/x-www-form-urlencoded 파싱 |
21 | app.use(bodyParser.urlencoded({ extended: false })) | 25 | app.use(bodyParser.urlencoded({ extended: false })) |
... | @@ -25,148 +29,248 @@ app.use(bodyParser.json()) | ... | @@ -25,148 +29,248 @@ app.use(bodyParser.json()) |
25 | 29 | ||
26 | // public 폴더를 static으로 오픈 | 30 | // public 폴더를 static으로 오픈 |
27 | app.use('/public', static(path.join(__dirname, 'public'))); | 31 | app.use('/public', static(path.join(__dirname, 'public'))); |
28 | - | ||
29 | -// cookie-parser 설정 | ||
30 | -app.use(cookieParser()); | ||
31 | - | ||
32 | -// 세션 설정 | ||
33 | -app.use(expressSession({ | ||
34 | - secret:'my key', | ||
35 | - resave:true, | ||
36 | - saveUninitialized:true | ||
37 | -})); | ||
38 | - | ||
39 | 32 | ||
40 | -// 라우터 객체 참조 | ||
41 | var router = express.Router(); | 33 | var router = express.Router(); |
42 | 34 | ||
43 | router.route('/process/maprealtime').get(function(req, res){ | 35 | router.route('/process/maprealtime').get(function(req, res){ |
44 | console.log('process/mapreatime 호출됨'); | 36 | console.log('process/mapreatime 호출됨'); |
37 | + res.end(); | ||
38 | +}); | ||
39 | + | ||
40 | + | ||
41 | +router.route('/process/maprealtime').get(function(req, res){ | ||
42 | + console.log('process/mapreatime 호출됨'); | ||
43 | + res.end(); | ||
45 | }); | 44 | }); |
46 | 45 | ||
47 | router.route('/process/construction').get(function(req, res){ | 46 | router.route('/process/construction').get(function(req, res){ |
48 | console.log('process/maprealconstruction 호출됨'); | 47 | console.log('process/maprealconstruction 호출됨'); |
48 | + res.end(); | ||
49 | }); | 49 | }); |
50 | 50 | ||
51 | router.route('/process/mapcctv').get(function(req, res){ | 51 | router.route('/process/mapcctv').get(function(req, res){ |
52 | - console.log('process/mapcctv 호출됨') | 52 | + console.log('process/mapcctv 호출됨'); |
53 | + res.end(); | ||
53 | }); | 54 | }); |
54 | 55 | ||
55 | 56 | ||
56 | app.use('/', router); | 57 | app.use('/', router); |
57 | 58 | ||
58 | -var url1 = 'http://data.ex.co.kr/openapi/odtraffic/trafficAmountByCongest'; | 59 | +app.post('/hook', function (req, res) { |
59 | -var queryParams1 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/ | 60 | + |
60 | -queryParams1 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */ | 61 | + var eventObj = req.body.events[0]; |
61 | - | 62 | + var source = eventObj.source; |
62 | -request({ | 63 | + var message = eventObj.message; |
63 | - url: url1 + queryParams1, | 64 | + // request log |
64 | - method: 'GET' | 65 | + console.log('======================', new Date() ,'======================'); |
65 | -}, function (error, response, body) { | 66 | + console.log('[request]', req.body); |
66 | - console.log('Status', response.statusCode); | 67 | + console.log('[request source] ', source); |
67 | - console.log('Headers', JSON.stringify(response.headers)); | 68 | + console.log('[request message]', message); |
68 | - console.log('Reponse received', body); | 69 | + helloworld(isstart, eventObj); |
69 | - var obj = JSON.parse(body); | 70 | + res.sendStatus(200); |
70 | - console.log(obj); | ||
71 | - console.log(obj.list[0]) | ||
72 | -}); | ||
73 | - | ||
74 | - | ||
75 | - | ||
76 | -var url2 = 'http://data.ex.co.kr/openapi/safeDriving/forecast'; | ||
77 | -var queryParams2 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/ | ||
78 | -queryParams2 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */ | ||
79 | - | ||
80 | -request({ | ||
81 | - url: url2 + queryParams2, | ||
82 | - method: 'GET' | ||
83 | -}, function (error, response, body) { | ||
84 | - console.log('Status', response.statusCode); | ||
85 | - console.log('Headers', JSON.stringify(response.headers)); | ||
86 | - console.log('Reponse received', body); | ||
87 | - var obj = JSON.parse(body); | ||
88 | - console.log(obj); | ||
89 | - console.log(obj.list[0]) | ||
90 | -}); | ||
91 | - | ||
92 | -var url3 = 'http://data.ex.co.kr/openapi/trafficapi/trafficAll'; | ||
93 | -var queryParams3 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/ | ||
94 | -queryParams3 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */ | ||
95 | - | ||
96 | -request({ | ||
97 | - url: url3 + queryParams3, | ||
98 | - method: 'GET' | ||
99 | - | ||
100 | -}, function (error, response, body) { | ||
101 | - console.log('Status', response.statusCode); | ||
102 | - console.log('Headers', JSON.stringify(response.headers)); | ||
103 | - console.log('Reponse received', body); | ||
104 | - var obj = JSON.parse(body); | ||
105 | - console.log(obj); | ||
106 | - console.log(obj.trafficAll[0]); | ||
107 | -}); | ||
108 | - | ||
109 | - | ||
110 | -var url4 = 'http://data.ex.co.kr/openapi/trafficapi/trafficRegion'; | ||
111 | -var queryParams4 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/ | ||
112 | -queryParams4 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */ | ||
113 | - | ||
114 | -request({ | ||
115 | - url: url4 + queryParams4, | ||
116 | - method: 'GET' | ||
117 | - | ||
118 | -}, function (error, response, body) { | ||
119 | - console.log('Status', response.statusCode); | ||
120 | - console.log('Headers', JSON.stringify(response.headers)); | ||
121 | - console.log('Reponse received', body); | ||
122 | - var obj = JSON.parse(body); | ||
123 | - console.log(obj); | ||
124 | - console.log(obj.trafficRegion[0]); | ||
125 | -}); | ||
126 | - | ||
127 | -var url5 = 'http://data.ex.co.kr/openapi/business/conveniServiceArea'; | ||
128 | -var queryParams5 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/ | ||
129 | -queryParams5 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */ | ||
130 | - | ||
131 | -request({ | ||
132 | - url: url5 + queryParams5, | ||
133 | - method: 'GET' | ||
134 | - | ||
135 | -}, function (error, response, body) { | ||
136 | - console.log('Status', response.statusCode); | ||
137 | - console.log('Headers', JSON.stringify(response.headers)); | ||
138 | - console.log('Reponse received', body); | ||
139 | - var obj = JSON.parse(body); | ||
140 | - console.log(obj); | ||
141 | - console.log(obj.list[0]); | ||
142 | }); | 71 | }); |
143 | 72 | ||
144 | - | 73 | +function helloworld(isstart, eventObj){ |
145 | -var url6 = 'http://openapi.its.go.kr/api/NTrafficInfo' | 74 | + request.post( |
146 | -var queryParams6 = '?' + encodeURIComponent('key') + '=1590913608992'; /* Service Key*/ | 75 | + { |
147 | -queryParams6 += '&' + encodeURIComponent('ReqType') + '=' + encodeURIComponent('2'); | 76 | + url: TARGET_URL, |
148 | - /* | 77 | + headers: { |
149 | -http://openapi.its.go.kr/api/NTrafficInfo?key=test&ReqType=2&MinX=126.800000&MaxX=127.890000&MinY=34.900000 &MaxY=35.100000*/ | 78 | + 'Authorization': `Bearer ${TOKEN}` |
150 | - | 79 | + }, |
151 | - | 80 | + json: { |
152 | -request({ | 81 | + "replyToken":eventObj.replyToken, |
153 | - url: url6 + queryParams6, | 82 | + "messages":[ |
154 | - method: 'GET' | 83 | + { |
155 | - | 84 | + "type":"text", |
156 | -}, function (error, response, body) { | 85 | + "text":"안녕하세요, 교통정보 알리미입니다." |
157 | - console.log('Status', response.statusCode); | 86 | + }, |
158 | - console.log('Headers', JSON.stringify(response.headers)); | 87 | + { |
159 | - console.log('Reponse received', body); | 88 | + "type":"text", |
160 | - // var obj = JSON.parse(body); | 89 | + "text":"무엇이 궁금하신가요??" |
161 | - // console.log(obj); | 90 | + }, |
162 | - // console.log(obj.list[0]); | 91 | + { |
163 | -}); | 92 | + "type":"text", |
164 | - | 93 | + "text":"https://www.chyoss.tk:23023/public/maprealtime.html" |
165 | - | 94 | + } |
166 | -// Express 서버 시작 | 95 | + ] |
167 | -http.createServer(app).listen(app.get('port'), function(){ | 96 | + } |
168 | - console.log('서버가 시작되었습니다. 포트 : ' + app.get('port')); | 97 | + },(error, response, body) => { |
169 | - | 98 | + console.log(body) |
170 | - | 99 | + }); |
171 | - }); | 100 | +} |
172 | - | 101 | + |
102 | + | ||
103 | + | ||
104 | + | ||
105 | +// function selectlan(language){ | ||
106 | +// if( language == '일본어'){ | ||
107 | + | ||
108 | +// return 'target=ja'; | ||
109 | +// } | ||
110 | +// else if (language == '영어'){ | ||
111 | + | ||
112 | +// return 'target=en'; | ||
113 | +// } | ||
114 | +// else if (language == '프랑스어'){ | ||
115 | + | ||
116 | +// return 'target=fr'; | ||
117 | +// } | ||
118 | +// } | ||
119 | + | ||
120 | +// function is(lantext){ | ||
121 | +// if (lantext == '일본어' || lantext == '영어' || lantext == '프랑스어'){ | ||
122 | +// return true; | ||
123 | +// }else{ | ||
124 | +// return false; | ||
125 | +// } | ||
126 | +// } | ||
127 | + | ||
128 | + | ||
129 | + | ||
130 | +// function trans(replyToken, selectinput ,message) { | ||
131 | +// //var select = selectlan(lan); | ||
132 | +// var selectin = selectinput | ||
133 | +// request.post( | ||
134 | +// { | ||
135 | +// url: PAPAGO_URL, | ||
136 | +// headers: { | ||
137 | +// 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', | ||
138 | +// 'X-Naver-Client-Id': `${PAPAGO_ID}`, | ||
139 | +// 'X-Naver-Client-Secret': `${PAPAGO_SECRET}` | ||
140 | +// }, | ||
141 | +// body: selectin + message, | ||
142 | +// json:true | ||
143 | +// },(error, response, body) => { | ||
144 | +// if(!error && response.statusCode == 200) { | ||
145 | +// console.log(body.message); | ||
146 | +// var transMessage = body.message.result.translatedText; | ||
147 | +// request.post( | ||
148 | +// { | ||
149 | +// url: TARGET_URL, | ||
150 | +// headers: { | ||
151 | +// 'Authorization': `Bearer ${TOKEN}` | ||
152 | +// }, | ||
153 | +// json: { | ||
154 | +// "replyToken":replyToken, | ||
155 | +// "messages":[ | ||
156 | +// { | ||
157 | +// "type":"text", | ||
158 | +// "text":transMessage | ||
159 | +// } | ||
160 | +// ] | ||
161 | +// } | ||
162 | +// },(error, response, body) => { | ||
163 | +// console.log(body) | ||
164 | +// }); | ||
165 | +// } | ||
166 | +// }); | ||
167 | + | ||
168 | +// } | ||
169 | + | ||
170 | + | ||
171 | +// var url1 = 'http://data.ex.co.kr/openapi/odtraffic/trafficAmountByCongest'; | ||
172 | +// var queryParams1 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/ | ||
173 | +// queryParams1 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */ | ||
174 | + | ||
175 | +// request({ | ||
176 | +// url: url1 + queryParams1, | ||
177 | +// method: 'GET' | ||
178 | +// }, function (error, response, body) { | ||
179 | +// console.log('Status', response.statusCode); | ||
180 | +// console.log('Headers', JSON.stringify(response.headers)); | ||
181 | +// console.log('Reponse received', body); | ||
182 | +// var obj = JSON.parse(body); | ||
183 | +// console.log(obj); | ||
184 | +// console.log(obj.list[0]) | ||
185 | +// }); | ||
186 | + | ||
187 | + | ||
188 | + | ||
189 | +// var url2 = 'http://data.ex.co.kr/openapi/safeDriving/forecast'; | ||
190 | +// var queryParams2 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/ | ||
191 | +// queryParams2 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */ | ||
192 | + | ||
193 | +// request({ | ||
194 | +// url: url2 + queryParams2, | ||
195 | +// method: 'GET' | ||
196 | +// }, function (error, response, body) { | ||
197 | +// console.log('Status', response.statusCode); | ||
198 | +// console.log('Headers', JSON.stringify(response.headers)); | ||
199 | +// console.log('Reponse received', body); | ||
200 | +// var obj = JSON.parse(body); | ||
201 | +// console.log(obj); | ||
202 | +// console.log(obj.list[0]) | ||
203 | +// }); | ||
204 | + | ||
205 | +// var url3 = 'http://data.ex.co.kr/openapi/trafficapi/trafficAll'; | ||
206 | +// var queryParams3 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/ | ||
207 | +// queryParams3 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */ | ||
208 | + | ||
209 | +// request({ | ||
210 | +// url: url3 + queryParams3, | ||
211 | +// method: 'GET' | ||
212 | + | ||
213 | +// }, function (error, response, body) { | ||
214 | +// console.log('Status', response.statusCode); | ||
215 | +// console.log('Headers', JSON.stringify(response.headers)); | ||
216 | +// console.log('Reponse received', body); | ||
217 | +// var obj = JSON.parse(body); | ||
218 | +// console.log(obj); | ||
219 | +// console.log(obj.trafficAll[0]); | ||
220 | +// }); | ||
221 | + | ||
222 | + | ||
223 | +// var url4 = 'http://data.ex.co.kr/openapi/trafficapi/trafficRegion'; | ||
224 | +// var queryParams4 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/ | ||
225 | +// queryParams4 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */ | ||
226 | + | ||
227 | +// request({ | ||
228 | +// url: url4 + queryParams4, | ||
229 | +// method: 'GET' | ||
230 | + | ||
231 | +// }, function (error, response, body) { | ||
232 | +// console.log('Status', response.statusCode); | ||
233 | +// console.log('Headers', JSON.stringify(response.headers)); | ||
234 | +// console.log('Reponse received', body); | ||
235 | +// var obj = JSON.parse(body); | ||
236 | +// console.log(obj); | ||
237 | +// console.log(obj.trafficRegion[0]); | ||
238 | +// }); | ||
239 | + | ||
240 | +// var url5 = 'http://data.ex.co.kr/openapi/business/conveniServiceArea'; | ||
241 | +// var queryParams5 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/ | ||
242 | +// queryParams5 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */ | ||
243 | + | ||
244 | +// request({ | ||
245 | +// url: url5 + queryParams5, | ||
246 | +// method: 'GET' | ||
247 | + | ||
248 | +// }, function (error, response, body) { | ||
249 | +// console.log('Status', response.statusCode); | ||
250 | +// console.log('Headers', JSON.stringify(response.headers)); | ||
251 | +// console.log('Reponse received', body); | ||
252 | +// var obj = JSON.parse(body); | ||
253 | +// console.log(obj); | ||
254 | +// console.log(obj.list[0]); | ||
255 | +// }); | ||
256 | + | ||
257 | + | ||
258 | + | ||
259 | + | ||
260 | + | ||
261 | + | ||
262 | +try { | ||
263 | + const option = { | ||
264 | + ca: fs.readFileSync('/etc/letsencrypt/live/' + domain +'/fullchain.pem'), | ||
265 | + key: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/privkey.pem'), 'utf8').toString(), | ||
266 | + cert: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/cert.pem'), 'utf8').toString(), | ||
267 | + }; | ||
268 | + | ||
269 | + HTTPS.createServer(option, app).listen(sslport, () => { | ||
270 | + console.log(`[HTTPS] Server is started on port ${sslport}`); | ||
271 | + }); | ||
272 | + } catch (error) { | ||
273 | + console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.'); | ||
274 | + console.log(error); | ||
275 | + } | ||
276 | + | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
whereur/node_modules/https/package.json
0 → 100644
1 | +{ | ||
2 | + "_from": "https", | ||
3 | + "_id": "https@1.0.0", | ||
4 | + "_inBundle": false, | ||
5 | + "_integrity": "sha1-PDfHrhqO65ZpBKKtHpdaGUt+06Q=", | ||
6 | + "_location": "/https", | ||
7 | + "_phantomChildren": {}, | ||
8 | + "_requested": { | ||
9 | + "type": "tag", | ||
10 | + "registry": true, | ||
11 | + "raw": "https", | ||
12 | + "name": "https", | ||
13 | + "escapedName": "https", | ||
14 | + "rawSpec": "", | ||
15 | + "saveSpec": null, | ||
16 | + "fetchSpec": "latest" | ||
17 | + }, | ||
18 | + "_requiredBy": [ | ||
19 | + "#USER", | ||
20 | + "/" | ||
21 | + ], | ||
22 | + "_resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", | ||
23 | + "_shasum": "3c37c7ae1a8eeb966904a2ad1e975a194b7ed3a4", | ||
24 | + "_spec": "https", | ||
25 | + "_where": "/Users/hyunyeong/Desktop/WhereUr/WhereUR/whereur", | ||
26 | + "author": { | ||
27 | + "name": "hardus van der berg", | ||
28 | + "email": "hardus@sunfork.com", | ||
29 | + "url": "http://www.sunfork.com" | ||
30 | + }, | ||
31 | + "bundleDependencies": false, | ||
32 | + "deprecated": false, | ||
33 | + "description": "https mediation", | ||
34 | + "keywords": [ | ||
35 | + "https", | ||
36 | + "mediation" | ||
37 | + ], | ||
38 | + "license": "ISC", | ||
39 | + "main": "index.js", | ||
40 | + "name": "https", | ||
41 | + "scripts": { | ||
42 | + "test": "echo \"Error: no test specified\" && exit 1" | ||
43 | + }, | ||
44 | + "version": "1.0.0" | ||
45 | +} |
... | @@ -424,6 +424,11 @@ | ... | @@ -424,6 +424,11 @@ |
424 | "sshpk": "^1.7.0" | 424 | "sshpk": "^1.7.0" |
425 | } | 425 | } |
426 | }, | 426 | }, |
427 | + "https": { | ||
428 | + "version": "1.0.0", | ||
429 | + "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", | ||
430 | + "integrity": "sha1-PDfHrhqO65ZpBKKtHpdaGUt+06Q=" | ||
431 | + }, | ||
427 | "iconv-lite": { | 432 | "iconv-lite": { |
428 | "version": "0.4.24", | 433 | "version": "0.4.24", |
429 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", | 434 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", | ... | ... |
... | @@ -21,6 +21,7 @@ | ... | @@ -21,6 +21,7 @@ |
21 | "express-error-handler": "^1.1.0", | 21 | "express-error-handler": "^1.1.0", |
22 | "express-session": "^1.17.1", | 22 | "express-session": "^1.17.1", |
23 | "http": "0.0.1-security", | 23 | "http": "0.0.1-security", |
24 | + "https": "^1.0.0", | ||
24 | "mongoose": "^5.9.16", | 25 | "mongoose": "^5.9.16", |
25 | "path": "^0.12.7", | 26 | "path": "^0.12.7", |
26 | "request": "^2.88.2" | 27 | "request": "^2.88.2" | ... | ... |
-
Please register or login to post a comment