곽원석

Merge branch 'development' into master

...@@ -17,14 +17,19 @@ ...@@ -17,14 +17,19 @@
17 ## 개발 환경 및 도구 : 17 ## 개발 환경 및 도구 :
18 * Ubuntu Server 18.04 LTS 18 * Ubuntu Server 18.04 LTS
19 * Windows 10 19 * Windows 10
20 - * Ubuntu 16.04.7 20 + * Ubuntu 20.04 LTS (Focal Fossa)
21 21
22 22
23 - 23 +## 사용방법 :
24 +<img src="/QR코드.jpg" width="20%" height="20%"alt="line"></img>
25 + Line 앱을 설치 후 QR코드를 사용해 친구 추가를 해주세요!
24 26
25 ## 설치방법 : 27 ## 설치방법 :
26 - 개발환경 설정이 끝나는 대로 추가예정 28 + 미리 구축된 aws에서
27 - (aws구축이 불가능한 문제가 있음) 29 + git clone http://khuhub.khu.ac.kr/2014104077/OSS-Project.git
30 + npm install --save express
31 + npm install --save request
32 + npm install --save xml-js
28 33
29 34
30 ## 주요 기능 및 명령어 35 ## 주요 기능 및 명령어
...@@ -38,8 +43,9 @@ ...@@ -38,8 +43,9 @@
38 곽원석 <rhkrdnjstjr1@khu.ac.kr> 43 곽원석 <rhkrdnjstjr1@khu.ac.kr>
39 44
40 45
41 -License 46 +### License :
42 The MIT License (MIT) 47 The MIT License (MIT)
48 +
43 Copyright (c) 2020 곽원석 49 Copyright (c) 2020 곽원석
44 Permission is hereby granted, free of charge, to any person obtaining a copy 50 Permission is hereby granted, free of charge, to any person obtaining a copy
45 of this software and associated documentation files (the "Software"), to deal 51 of this software and associated documentation files (the "Software"), to deal
......
This diff is collapsed. Click to expand it.
1 -var express = require('express');
2 -var app = express();
3 -const line = require('@line/bot-sdk');
4 -
5 -
6 -//papago api
7 -var request = require('request');
8 -
9 -//번역 api_url
10 -var translate_api_url = 'https://openapi.naver.com/v1/papago/n2mt';
11 -
12 -//언어감지 api_url
13 -var languagedetect_api_url = 'https://openapi.naver.com/v1/papago/detectLangs'
14 -
15 -// Naver Auth Key
16 -//새로 발급받은 naver papago api id, pw 입력
17 -var client_id = 'xZMx34y7uru1v8lywZ2d';
18 -var client_secret = 'p6L7M7WsH9';
19 -
20 -const config = {
21 - channelAccessToken: 'mnny0MJSezgBXzR9C3Ddcc1Csdb7Y9jkvy2nqV5saOmvR2YOJ1/kj/2M0CNsLA+57B2qDpdUQ7WbCTtIKx/LAJ6Kwfop4tX3up7EM8H9EZK1td6GMbhhCb6wvUFVdb1PcTO4joCv8mspd3ubo8a+gAdB04t89/1O/w1cDnyilFU=',
22 - channelSecret: 'bde77633a16fc5bfbd532d5990c6170e',
23 -};
24 -
25 -
26 -// create LINE SDK client
27 -const client = new line.Client(config);
28 -
29 -// create Express app
30 -// about Express itself: https://expressjs.com/
31 -
32 -// register a webhook handler with middleware
33 -// about the middleware, please refer to doc
34 -app.post('/webhook', line.middleware(config), (req, res) => {
35 - Promise
36 - .all(req.body.events.map(handleEvent))
37 - .then((result) => res.json(result))
38 - .catch((err) => {
39 - console.error(err);
40 - res.status(200).end();
41 - });
42 -});
43 -
44 -// event handler
45 -function handleEvent(event) {
46 - if (event.type !== 'message' || event.message.type !== 'text') {
47 - // ignore non-text-message event
48 - return Promise.resolve(null);
49 - }
50 - return new Promise(function(resolve, reject) {
51 - //언어 감지 option
52 - var detect_options = {
53 - url : languagedetect_api_url,
54 - form : {'query': event.message.text},
55 - headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret}
56 - };
57 -
58 - //papago 언어 감지
59 - request.post(detect_options,function(error,response,body){
60 - console.log(response.statusCode);
61 - if(!error && response.statusCode == 200){
62 - var detect_body = JSON.parse(response.body);
63 - var source = '';
64 - var target = '';
65 - var result = { type: 'text', text:''};
66 -
67 - //언어 감지가 제대로 됐는지 확인
68 - console.log(detect_body.langCode);
69 -
70 -
71 - //번역은 한국어->영어 / 영어->한국어만 지원
72 - if(detect_body.langCode == 'ko'||detect_body.langCode == 'en'){
73 - source = detect_body.langCode == 'ko' ? 'ko':'en';
74 - target = source == 'ko' ? 'en':'ko';
75 - //papago 번역 option
76 - var options = {
77 - url: translate_api_url,
78 - // 한국어(source : ko), 영어(target: en), 카톡에서 받는 메시지(text)
79 - form: {'source':source, 'target':target, 'text':event.message.text},
80 - headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret}
81 - };
82 -
83 - // Naver Post API
84 - request.post(options, function(error, response, body){
85 - // Translate API Sucess
86 - if(!error && response.statusCode == 200){
87 - // JSON
88 - var objBody = JSON.parse(response.body);
89 - // Message 잘 찍히는지 확인
90 -
91 - result.text = objBody.message.result.translatedText;
92 - console.log(result.text);
93 - //번역된 문장 보내기
94 - client.replyMessage(event.replyToken,result).then(resolve).catch(reject);
95 - }
96 - });
97 - }
98 - // 메시지의 언어가 영어 또는 한국어가 아닐 경우
99 - else{
100 - result.text = '언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 영어만 가능합니다.';
101 - client.replyMessage(event.replyToken,result).then(resolve).catch(reject);
102 - }
103 -
104 - }
105 -
106 - });
107 -
108 - });
109 - }
110 -
111 -app.listen(3000, function () {
112 - console.log('Linebot listening on port 3000!');
113 -});
This diff is collapsed. Click to expand it.
...@@ -4,13 +4,21 @@ ...@@ -4,13 +4,21 @@
4 "description": "", 4 "description": "",
5 "main": "app.js", 5 "main": "app.js",
6 "scripts": { 6 "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1", 7 + "test": "echo \"Error: no test specified\" && exit 1"
8 - "start": "node server.js"
9 }, 8 },
10 - "author": "KwakWonseok", 9 + "repository": {
11 - "license": "MIT", 10 + "type": "git",
12 - "dependencies": { 11 + "url": "http://khuhub.khu.ac.kr/2014104077/OSS-Project.git"
13 - "@line/bot-sdk": "^6.4.0", 12 + }
14 - "express": "^4.16.4" 13 + "author": {
14 + "name": "KwakWonseok",
15 + "email": "rhkrdnjstjr1@khu.ac.kr",
16 + "url": "http://khuhub.khu.ac.kr/u/2014104077"
17 + }
18 + "license": "MIT",
19 + "dependencies": {
20 + "@line/bot-sdk": "^6.4.0",
21 + "express": "^4.17.1",
22 + "request": "^2.88.2"
23 + }
15 } 24 }
16 -}
......