곽원석

Merge branch 'development' into master

......@@ -17,14 +17,19 @@
## 개발 환경 및 도구 :
* Ubuntu Server 18.04 LTS
* Windows 10
* Ubuntu 16.04.7
* Ubuntu 20.04 LTS (Focal Fossa)
## 사용방법 :
<img src="/QR코드.jpg" width="20%" height="20%"alt="line"></img>
Line 앱을 설치 후 QR코드를 사용해 친구 추가를 해주세요!
## 설치방법 :
개발환경 설정이 끝나는 대로 추가예정
(aws구축이 불가능한 문제가 있음)
미리 구축된 aws에서
git clone http://khuhub.khu.ac.kr/2014104077/OSS-Project.git
npm install --save express
npm install --save request
npm install --save xml-js
## 주요 기능 및 명령어
......@@ -38,8 +43,9 @@
곽원석 <rhkrdnjstjr1@khu.ac.kr>
License
### License :
The MIT License (MIT)
Copyright (c) 2020 곽원석
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
......
This diff is collapsed. Click to expand it.
var express = require('express');
var app = express();
const line = require('@line/bot-sdk');
//papago api
var request = require('request');
//번역 api_url
var translate_api_url = 'https://openapi.naver.com/v1/papago/n2mt';
//언어감지 api_url
var languagedetect_api_url = 'https://openapi.naver.com/v1/papago/detectLangs'
// Naver Auth Key
//새로 발급받은 naver papago api id, pw 입력
var client_id = 'xZMx34y7uru1v8lywZ2d';
var client_secret = 'p6L7M7WsH9';
const config = {
channelAccessToken: 'mnny0MJSezgBXzR9C3Ddcc1Csdb7Y9jkvy2nqV5saOmvR2YOJ1/kj/2M0CNsLA+57B2qDpdUQ7WbCTtIKx/LAJ6Kwfop4tX3up7EM8H9EZK1td6GMbhhCb6wvUFVdb1PcTO4joCv8mspd3ubo8a+gAdB04t89/1O/w1cDnyilFU=',
channelSecret: 'bde77633a16fc5bfbd532d5990c6170e',
};
// create LINE SDK client
const client = new line.Client(config);
// create Express app
// about Express itself: https://expressjs.com/
// register a webhook handler with middleware
// about the middleware, please refer to doc
app.post('/webhook', line.middleware(config), (req, res) => {
Promise
.all(req.body.events.map(handleEvent))
.then((result) => res.json(result))
.catch((err) => {
console.error(err);
res.status(200).end();
});
});
// event handler
function handleEvent(event) {
if (event.type !== 'message' || event.message.type !== 'text') {
// ignore non-text-message event
return Promise.resolve(null);
}
return new Promise(function(resolve, reject) {
//언어 감지 option
var detect_options = {
url : languagedetect_api_url,
form : {'query': event.message.text},
headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret}
};
//papago 언어 감지
request.post(detect_options,function(error,response,body){
console.log(response.statusCode);
if(!error && response.statusCode == 200){
var detect_body = JSON.parse(response.body);
var source = '';
var target = '';
var result = { type: 'text', text:''};
//언어 감지가 제대로 됐는지 확인
console.log(detect_body.langCode);
//번역은 한국어->영어 / 영어->한국어만 지원
if(detect_body.langCode == 'ko'||detect_body.langCode == 'en'){
source = detect_body.langCode == 'ko' ? 'ko':'en';
target = source == 'ko' ? 'en':'ko';
//papago 번역 option
var options = {
url: translate_api_url,
// 한국어(source : ko), 영어(target: en), 카톡에서 받는 메시지(text)
form: {'source':source, 'target':target, 'text':event.message.text},
headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret}
};
// Naver Post API
request.post(options, function(error, response, body){
// Translate API Sucess
if(!error && response.statusCode == 200){
// JSON
var objBody = JSON.parse(response.body);
// Message 잘 찍히는지 확인
result.text = objBody.message.result.translatedText;
console.log(result.text);
//번역된 문장 보내기
client.replyMessage(event.replyToken,result).then(resolve).catch(reject);
}
});
}
// 메시지의 언어가 영어 또는 한국어가 아닐 경우
else{
result.text = '언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 영어만 가능합니다.';
client.replyMessage(event.replyToken,result).then(resolve).catch(reject);
}
}
});
});
}
app.listen(3000, function () {
console.log('Linebot listening on port 3000!');
});
This diff is collapsed. Click to expand it.
......@@ -4,13 +4,21 @@
"description": "",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js"
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "KwakWonseok",
"license": "MIT",
"dependencies": {
"@line/bot-sdk": "^6.4.0",
"express": "^4.16.4"
"repository": {
"type": "git",
"url": "http://khuhub.khu.ac.kr/2014104077/OSS-Project.git"
}
"author": {
"name": "KwakWonseok",
"email": "rhkrdnjstjr1@khu.ac.kr",
"url": "http://khuhub.khu.ac.kr/u/2014104077"
}
"license": "MIT",
"dependencies": {
"@line/bot-sdk": "^6.4.0",
"express": "^4.17.1",
"request": "^2.88.2"
}
}
}
......