조현아

rm bodyparser

1 node_modules/ 1 node_modules/
2 config.js 2 config.js
3 +
4 +\.idea/
......
1 -var express = require('express'); 1 +var express = require("express");
2 -var app = express(); 2 +const line = require("@line/bot-sdk");
3 -const line = require('@line/bot-sdk'); 3 +var request = require("request");
4 -const config = require('./config.js');
5 -
6 -
7 -//papago api
8 -var request = require('request');
9 -
10 -//번역 api_url
11 -var translate_api_url = 'https://openapi.naver.com/v1/papago/n2mt';
12 -
13 -//언어감지 api_url
14 -var languagedetect_api_url = 'https://openapi.naver.com/v1/papago/detectLangs'
15 -
16 4
5 +var app = express();
6 +const config = require("./config.js");
17 7
18 -// create LINE SDK client 8 +var translate_api_url = "https://openapi.naver.com/v1/papago/n2mt"; //번역 api_url
19 -const client = new line.Client(config.line_config); 9 +var languagedetect_api_url = "https://openapi.naver.com/v1/papago/detectLangs"; //언어감지 api_url
20 -
21 -// create Express app
22 -// about Express itself: https://expressjs.com/
23 10
24 -// register a webhook handler with middleware
25 // about the middleware, please refer to doc 11 // about the middleware, please refer to doc
12 +app.get("/", function(req, res) {
13 + res.send("!");
14 +});
26 15
27 -const bodyParser = require('body-parser'); 16 +// register a webhook handler with middleware
28 -app.use(bodyParser.json()); 17 +app.post("/webhook", line.middleware(config.line_config), (req, res) => {
29 - 18 + // res.status(200).end();
30 -app.post('/webhook', line.middleware(config.line_config), (req, res) => { 19 + Promise.all(req.body.events.map(handleEvent)).then(result =>
31 - Promise 20 + res.json(result)
32 - .all(req.body.events.map(handleEvent)) 21 + );
33 - .then((result) => res.json(result))
34 - .catch((err) => {
35 - console.error(err);
36 - res.status(200).end();
37 - });
38 - console.log('[result]', req.json(result));
39 - console.log('[request]', req.body);
40 - console.log('[request source]', req.body.events[0].source);
41 - console.log('[request message]', req.body.events[0].message);
42 }); 22 });
43 23
24 +const client = new line.Client(config.line_config);
44 25
45 -// event handler 26 +//event handler
46 function handleEvent(event) { 27 function handleEvent(event) {
47 console.log("event.message.text"); 28 console.log("event.message.text");
48 - if (event.type !== 'message' || event.message.type !== 'text') { 29 + if (event.type !== "message" || event.message.type !== "text") {
49 console.log("2"); 30 console.log("2");
50 // ignore non-text-message event 31 // ignore non-text-message event
51 return Promise.resolve(null); 32 return Promise.resolve(null);
...@@ -54,66 +35,69 @@ function handleEvent(event) { ...@@ -54,66 +35,69 @@ function handleEvent(event) {
54 console.log("3"); 35 console.log("3");
55 //언어 감지 option 36 //언어 감지 option
56 var detect_options = { 37 var detect_options = {
57 - url : languagedetect_api_url, 38 + url: languagedetect_api_url,
58 - form : {'query': event.message.text}, 39 + form: { query: event.message.text },
59 headers: config.naver_header 40 headers: config.naver_header
60 }; 41 };
61 42
62 //papago 언어 감지 43 //papago 언어 감지
63 - request.post(detect_options,function(error,response,body){ 44 + request.post(detect_options, function(error, response, body) {
64 console.log("4"); 45 console.log("4");
65 console.log(response.statusCode); 46 console.log(response.statusCode);
66 - if(!error && response.statusCode == 200){ 47 + if (!error && response.statusCode == 200) {
67 var detect_body = JSON.parse(response.body); 48 var detect_body = JSON.parse(response.body);
68 - var source = ''; 49 + var source = "";
69 - var target = ''; 50 + var target = "";
70 - var result = { type: 'text', text:''}; 51 + var result = { type: "text", text: "" };
71 52
72 //언어 감지가 제대로 됐는지 확인 53 //언어 감지가 제대로 됐는지 확인
73 console.log(detect_body.langCode); 54 console.log(detect_body.langCode);
74 -
75 55
76 //번역은 한국어->영어 / 영어->한국어만 지원 56 //번역은 한국어->영어 / 영어->한국어만 지원
77 - if(detect_body.langCode == 'ko'||detect_body.langCode == 'en'){ 57 + if (detect_body.langCode == "ko" || detect_body.langCode == "en") {
78 console.log("5"); 58 console.log("5");
79 - source = detect_body.langCode == 'ko' ? 'ko':'en'; 59 + source = detect_body.langCode == "ko" ? "ko" : "en";
80 - target = source == 'ko' ? 'en':'ko'; 60 + target = source == "ko" ? "en" : "ko";
81 //papago 번역 option 61 //papago 번역 option
82 var options = { 62 var options = {
83 - url: translate_api_url, 63 + url: translate_api_url,
84 - // 한국어(source : ko), 영어(target: en), 카톡에서 받는 메시지(text) 64 + // 한국어(source : ko), 영어(target: en), 카톡에서 받는 메시지(text)
85 - form: {'source':source, 'target':target, 'text':event.message.text}, 65 + form: { source: source, target: target, text: event.message.text },
86 - headers: config.naver_header 66 + headers: config.naver_header
87 }; 67 };
88 68
89 // Naver Post API 69 // Naver Post API
90 - request.post(options, function(error, response, body){ 70 + request.post(options, function(error, response, body) {
91 - // Translate API Success 71 + // Translate API Success
92 - if(!error && response.statusCode == 200){ 72 + if (!error && response.statusCode == 200) {
93 - // JSON 73 + // JSON
94 - var objBody = JSON.parse(response.body); 74 + var objBody = JSON.parse(response.body);
95 - // Message 잘 찍히는지 확인 75 + // Message 잘 찍히는지 확인
96 - 76 +
97 - result.text = objBody.message.result.translatedText; 77 + result.text = objBody.message.result.translatedText;
98 - console.log(result.text); 78 + console.log(result.text);
99 - //번역된 문장 보내기 79 + //번역된 문장 보내기
100 - client.replyMessage(event.replyToken,result).then(resolve).catch(reject); 80 + client
101 - } 81 + .replyMessage(event.replyToken, result)
82 + .then(resolve)
83 + .catch(reject);
84 + }
102 }); 85 });
103 } 86 }
104 // 메시지의 언어가 영어 또는 한국어가 아닐 경우 87 // 메시지의 언어가 영어 또는 한국어가 아닐 경우
105 - else{ 88 + else {
106 - result.text = '언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 영어만 가능합니다.'; 89 + result.text =
107 - client.replyMessage(event.replyToken,result).then(resolve).catch(reject); 90 + "언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 영어만 가능합니다.";
91 + client
92 + .replyMessage(event.replyToken, result)
93 + .then(resolve)
94 + .catch(reject);
108 } 95 }
109 -
110 } 96 }
111 -
112 }); 97 });
98 + });
99 +}
113 100
114 - }); 101 +app.listen(3000, function() {
115 - } 102 + console.log("Linebot listening on port 3000!");
116 -
117 -app.listen(3000, function () {
118 - console.log('Linebot listening on port 3000!');
119 }); 103 });
......