최현영

whereur

var express = require('express')
, http = require('http')
, path = require('path');
var request = require('request');
var bodyParser = require('body-parser')
, cookieParser = require('cookie-parser')
, static = require('serve-static')
, errorHandler = require('errorhandler');
var express = require('express');
const request = require('request');
const bodyParser = require('body-parser');
var app = express();
var static = require('serve-static');
var expressSession = require('express-session');
const fs = require('fs');
const path = require('path');
const HTTPS = require('https');
const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
const TOKEN = 'sqNjA99TptppqvcoVFAnU7Kawsl+s7l+JgnZ7r2is97qrFQraIn0sLQ6mTsIPvXLG7FNK34rvjkXbgwuy0/bgrUn4J5eYPn4H/IH27MdimpiXo/yv+obIN9IKlqR+EF2gLmuXSxMU/LWzyGxCk1G0gdB04t89/1O/w1cDnyilFU='
//const PAPAGO_URL = 'https://openapi.naver.com/v1/papago/n2mt'
//const PAPAGO_ID = 'AH9WUFCtTrz9xnJ6dpxB'
//const PAPAGO_SECRET = 'um7UxSvbxD'
var app = express();
const domain = "www.chyoss.tk"
const sslport = 23023;
app.use(bodyParser.json());
app.set('port', process.env.PORT || 3000);
var isstart = true;
//전역변수 선언
// body-parser를 이용해 application/x-www-form-urlencoded 파싱
app.use(bodyParser.urlencoded({ extended: false }))
......@@ -25,148 +29,248 @@ app.use(bodyParser.json())
// public 폴더를 static으로 오픈
app.use('/public', static(path.join(__dirname, 'public')));
// cookie-parser 설정
app.use(cookieParser());
// 세션 설정
app.use(expressSession({
secret:'my key',
resave:true,
saveUninitialized:true
}));
// 라우터 객체 참조
var router = express.Router();
router.route('/process/maprealtime').get(function(req, res){
console.log('process/mapreatime 호출됨');
res.end();
});
router.route('/process/maprealtime').get(function(req, res){
console.log('process/mapreatime 호출됨');
res.end();
});
router.route('/process/construction').get(function(req, res){
console.log('process/maprealconstruction 호출됨');
res.end();
});
router.route('/process/mapcctv').get(function(req, res){
console.log('process/mapcctv 호출됨')
console.log('process/mapcctv 호출됨');
res.end();
});
app.use('/', router);
var url1 = 'http://data.ex.co.kr/openapi/odtraffic/trafficAmountByCongest';
var queryParams1 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/
queryParams1 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */
request({
url: url1 + queryParams1,
method: 'GET'
}, function (error, response, body) {
console.log('Status', response.statusCode);
console.log('Headers', JSON.stringify(response.headers));
console.log('Reponse received', body);
var obj = JSON.parse(body);
console.log(obj);
console.log(obj.list[0])
});
var url2 = 'http://data.ex.co.kr/openapi/safeDriving/forecast';
var queryParams2 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/
queryParams2 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */
request({
url: url2 + queryParams2,
method: 'GET'
}, function (error, response, body) {
console.log('Status', response.statusCode);
console.log('Headers', JSON.stringify(response.headers));
console.log('Reponse received', body);
var obj = JSON.parse(body);
console.log(obj);
console.log(obj.list[0])
});
var url3 = 'http://data.ex.co.kr/openapi/trafficapi/trafficAll';
var queryParams3 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/
queryParams3 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */
request({
url: url3 + queryParams3,
method: 'GET'
}, function (error, response, body) {
console.log('Status', response.statusCode);
console.log('Headers', JSON.stringify(response.headers));
console.log('Reponse received', body);
var obj = JSON.parse(body);
console.log(obj);
console.log(obj.trafficAll[0]);
});
var url4 = 'http://data.ex.co.kr/openapi/trafficapi/trafficRegion';
var queryParams4 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/
queryParams4 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */
request({
url: url4 + queryParams4,
method: 'GET'
}, function (error, response, body) {
console.log('Status', response.statusCode);
console.log('Headers', JSON.stringify(response.headers));
console.log('Reponse received', body);
var obj = JSON.parse(body);
console.log(obj);
console.log(obj.trafficRegion[0]);
});
var url5 = 'http://data.ex.co.kr/openapi/business/conveniServiceArea';
var queryParams5 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/
queryParams5 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */
request({
url: url5 + queryParams5,
method: 'GET'
}, function (error, response, body) {
console.log('Status', response.statusCode);
console.log('Headers', JSON.stringify(response.headers));
console.log('Reponse received', body);
var obj = JSON.parse(body);
console.log(obj);
console.log(obj.list[0]);
app.post('/hook', function (req, res) {
var eventObj = req.body.events[0];
var source = eventObj.source;
var message = eventObj.message;
// request log
console.log('======================', new Date() ,'======================');
console.log('[request]', req.body);
console.log('[request source] ', source);
console.log('[request message]', message);
helloworld(isstart, eventObj);
res.sendStatus(200);
});
var url6 = 'http://openapi.its.go.kr/api/NTrafficInfo'
var queryParams6 = '?' + encodeURIComponent('key') + '=1590913608992'; /* Service Key*/
queryParams6 += '&' + encodeURIComponent('ReqType') + '=' + encodeURIComponent('2');
/*
http://openapi.its.go.kr/api/NTrafficInfo?key=test&ReqType=2&MinX=126.800000&MaxX=127.890000&MinY=34.900000 &MaxY=35.100000*/
request({
url: url6 + queryParams6,
method: 'GET'
}, function (error, response, body) {
console.log('Status', response.statusCode);
console.log('Headers', JSON.stringify(response.headers));
console.log('Reponse received', body);
// var obj = JSON.parse(body);
// console.log(obj);
// console.log(obj.list[0]);
});
// Express 서버 시작
http.createServer(app).listen(app.get('port'), function(){
console.log('서버가 시작되었습니다. 포트 : ' + app.get('port'));
});
function helloworld(isstart, eventObj){
request.post(
{
url: TARGET_URL,
headers: {
'Authorization': `Bearer ${TOKEN}`
},
json: {
"replyToken":eventObj.replyToken,
"messages":[
{
"type":"text",
"text":"안녕하세요, 교통정보 알리미입니다."
},
{
"type":"text",
"text":"무엇이 궁금하신가요??"
},
{
"type":"text",
"text":"https://www.chyoss.tk:23023/public/maprealtime.html"
}
]
}
},(error, response, body) => {
console.log(body)
});
}
// function selectlan(language){
// if( language == '일본어'){
// return 'target=ja';
// }
// else if (language == '영어'){
// return 'target=en';
// }
// else if (language == '프랑스어'){
// return 'target=fr';
// }
// }
// function is(lantext){
// if (lantext == '일본어' || lantext == '영어' || lantext == '프랑스어'){
// return true;
// }else{
// return false;
// }
// }
// function trans(replyToken, selectinput ,message) {
// //var select = selectlan(lan);
// var selectin = selectinput
// 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: selectin + message,
// 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,
// headers: {
// 'Authorization': `Bearer ${TOKEN}`
// },
// json: {
// "replyToken":replyToken,
// "messages":[
// {
// "type":"text",
// "text":transMessage
// }
// ]
// }
// },(error, response, body) => {
// console.log(body)
// });
// }
// });
// }
// var url1 = 'http://data.ex.co.kr/openapi/odtraffic/trafficAmountByCongest';
// var queryParams1 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/
// queryParams1 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */
// request({
// url: url1 + queryParams1,
// method: 'GET'
// }, function (error, response, body) {
// console.log('Status', response.statusCode);
// console.log('Headers', JSON.stringify(response.headers));
// console.log('Reponse received', body);
// var obj = JSON.parse(body);
// console.log(obj);
// console.log(obj.list[0])
// });
// var url2 = 'http://data.ex.co.kr/openapi/safeDriving/forecast';
// var queryParams2 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/
// queryParams2 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */
// request({
// url: url2 + queryParams2,
// method: 'GET'
// }, function (error, response, body) {
// console.log('Status', response.statusCode);
// console.log('Headers', JSON.stringify(response.headers));
// console.log('Reponse received', body);
// var obj = JSON.parse(body);
// console.log(obj);
// console.log(obj.list[0])
// });
// var url3 = 'http://data.ex.co.kr/openapi/trafficapi/trafficAll';
// var queryParams3 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/
// queryParams3 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */
// request({
// url: url3 + queryParams3,
// method: 'GET'
// }, function (error, response, body) {
// console.log('Status', response.statusCode);
// console.log('Headers', JSON.stringify(response.headers));
// console.log('Reponse received', body);
// var obj = JSON.parse(body);
// console.log(obj);
// console.log(obj.trafficAll[0]);
// });
// var url4 = 'http://data.ex.co.kr/openapi/trafficapi/trafficRegion';
// var queryParams4 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/
// queryParams4 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */
// request({
// url: url4 + queryParams4,
// method: 'GET'
// }, function (error, response, body) {
// console.log('Status', response.statusCode);
// console.log('Headers', JSON.stringify(response.headers));
// console.log('Reponse received', body);
// var obj = JSON.parse(body);
// console.log(obj);
// console.log(obj.trafficRegion[0]);
// });
// var url5 = 'http://data.ex.co.kr/openapi/business/conveniServiceArea';
// var queryParams5 = '?' + encodeURIComponent('key') + '=4365330273'; /* Service Key*/
// queryParams5 += '&' + encodeURIComponent('type') + '=' + encodeURIComponent('json'); /* */
// request({
// url: url5 + queryParams5,
// method: 'GET'
// }, function (error, response, body) {
// console.log('Status', response.statusCode);
// console.log('Headers', JSON.stringify(response.headers));
// console.log('Reponse received', body);
// var obj = JSON.parse(body);
// console.log(obj);
// console.log(obj.list[0]);
// });
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);
}
\ No newline at end of file
......
{
"_from": "https",
"_id": "https@1.0.0",
"_inBundle": false,
"_integrity": "sha1-PDfHrhqO65ZpBKKtHpdaGUt+06Q=",
"_location": "/https",
"_phantomChildren": {},
"_requested": {
"type": "tag",
"registry": true,
"raw": "https",
"name": "https",
"escapedName": "https",
"rawSpec": "",
"saveSpec": null,
"fetchSpec": "latest"
},
"_requiredBy": [
"#USER",
"/"
],
"_resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz",
"_shasum": "3c37c7ae1a8eeb966904a2ad1e975a194b7ed3a4",
"_spec": "https",
"_where": "/Users/hyunyeong/Desktop/WhereUr/WhereUR/whereur",
"author": {
"name": "hardus van der berg",
"email": "hardus@sunfork.com",
"url": "http://www.sunfork.com"
},
"bundleDependencies": false,
"deprecated": false,
"description": "https mediation",
"keywords": [
"https",
"mediation"
],
"license": "ISC",
"main": "index.js",
"name": "https",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"version": "1.0.0"
}
......@@ -424,6 +424,11 @@
"sshpk": "^1.7.0"
}
},
"https": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz",
"integrity": "sha1-PDfHrhqO65ZpBKKtHpdaGUt+06Q="
},
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
......
......@@ -21,6 +21,7 @@
"express-error-handler": "^1.1.0",
"express-session": "^1.17.1",
"http": "0.0.1-security",
"https": "^1.0.0",
"mongoose": "^5.9.16",
"path": "^0.12.7",
"request": "^2.88.2"
......