Showing
1 changed file
with
25 additions
and
0 deletions
1 | +// Naver WEB Request | ||
1 | var request = require('request'); | 2 | var request = require('request'); |
3 | + | ||
4 | +// Web Package | ||
2 | var express = require('express'); | 5 | var express = require('express'); |
3 | var app = express(); | 6 | var app = express(); |
4 | 7 | ||
8 | +// Kakao Parser | ||
5 | var bodyParser = require('body-parser'); | 9 | var bodyParser = require('body-parser'); |
6 | 10 | ||
11 | +// Naver API URL | ||
7 | var api_url = 'https://openapi.naver.com/v1/papago/n2mt'; | 12 | var api_url = 'https://openapi.naver.com/v1/papago/n2mt'; |
8 | 13 | ||
14 | +// Naver Auth Key | ||
9 | var client_id = '86rKmat0DijccSxKa01P'; | 15 | var client_id = '86rKmat0DijccSxKa01P'; |
10 | var client_secret = 'rMapNjB8DP'; | 16 | var client_secret = 'rMapNjB8DP'; |
17 | + | ||
18 | +// Parse Application JSON | ||
11 | app.use(bodyParser.json()); | 19 | app.use(bodyParser.json()); |
20 | + | ||
21 | +// Parse Application/x-www-form-urlencoded | ||
12 | app.use(bodyParser.urlencoded({ extended: true})); | 22 | app.use(bodyParser.urlencoded({ extended: true})); |
13 | 23 | ||
24 | +// Kakao Keyboard API | ||
14 | app.get('/keyboard', function(req, res) { | 25 | app.get('/keyboard', function(req, res) { |
15 | const menu = { | 26 | const menu = { |
16 | "type": 'buttons', | 27 | "type": 'buttons', |
... | @@ -21,6 +32,7 @@ app.get('/keyboard', function(req, res) { | ... | @@ -21,6 +32,7 @@ app.get('/keyboard', function(req, res) { |
21 | }).send(JSON.stringify(menu)); | 32 | }).send(JSON.stringify(menu)); |
22 | }); | 33 | }); |
23 | 34 | ||
35 | +// Kakao Message API | ||
24 | app.post('/message', function(req, res) { | 36 | app.post('/message', function(req, res) { |
25 | const _obj = { | 37 | const _obj = { |
26 | user_key: req.body.user_key, | 38 | user_key: req.body.user_key, |
... | @@ -30,26 +42,37 @@ app.post('/message', function(req, res) { | ... | @@ -30,26 +42,37 @@ app.post('/message', function(req, res) { |
30 | 42 | ||
31 | console.log(_obj.content) | 43 | console.log(_obj.content) |
32 | 44 | ||
45 | + // Naver Papago Translate | ||
33 | var options = { | 46 | var options = { |
34 | url: api_url, | 47 | url: api_url, |
48 | + // 한국어(source : ko), 영어(target: en), 카톡에서 받는 메시지(text) | ||
35 | form: {'source':'ko', 'target':'en', 'text':req.body.content}, | 49 | form: {'source':'ko', 'target':'en', 'text':req.body.content}, |
36 | headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret} | 50 | headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret} |
37 | }; | 51 | }; |
52 | + | ||
53 | + // Naver Post API | ||
38 | request.post(options, function(error, response, body){ | 54 | request.post(options, function(error, response, body){ |
55 | + // Translate API Sucess | ||
39 | if(!error && response.statusCode == 200){ | 56 | if(!error && response.statusCode == 200){ |
57 | + // JSON | ||
40 | var objBody = JSON.parse(response.body); | 58 | var objBody = JSON.parse(response.body); |
59 | + // Message 잘 찍히는지 확인 | ||
41 | console.log(objBody.message.result.translatedText); | 60 | console.log(objBody.message.result.translatedText); |
42 | 61 | ||
62 | + // Kakao Message API | ||
43 | let massage = { | 63 | let massage = { |
44 | "message": { | 64 | "message": { |
65 | + // Naver API Translate 결과를 Kakao Message | ||
45 | "text": objBody.message.result.translatedText | 66 | "text": objBody.message.result.translatedText |
46 | }, | 67 | }, |
47 | }; | 68 | }; |
48 | 69 | ||
70 | + // Kakao Message API 전송 | ||
49 | res.set({ | 71 | res.set({ |
50 | 'content-type': 'application/json' | 72 | 'content-type': 'application/json' |
51 | }).send(JSON.stringify(massage)); | 73 | }).send(JSON.stringify(massage)); |
52 | }else{ | 74 | }else{ |
75 | + // Naver Message Error 발생 | ||
53 | res.status(response.statusCode).end(); | 76 | res.status(response.statusCode).end(); |
54 | console.log('error = ' + response.statusCode); | 77 | console.log('error = ' + response.statusCode); |
55 | 78 | ||
... | @@ -59,6 +82,7 @@ app.post('/message', function(req, res) { | ... | @@ -59,6 +82,7 @@ app.post('/message', function(req, res) { |
59 | }, | 82 | }, |
60 | }; | 83 | }; |
61 | 84 | ||
85 | + // Kakao에 Error Message | ||
62 | res.set({ | 86 | res.set({ |
63 | 'content-type': 'application/json' | 87 | 'content-type': 'application/json' |
64 | }).send(JSON.stringify(massage)); | 88 | }).send(JSON.stringify(massage)); |
... | @@ -66,5 +90,6 @@ app.post('/message', function(req, res) { | ... | @@ -66,5 +90,6 @@ app.post('/message', function(req, res) { |
66 | }); | 90 | }); |
67 | }); | 91 | }); |
68 | 92 | ||
93 | +// whatsupdevelop.com 실행 | ||
69 | app.listen(80, function(){ | 94 | app.listen(80, function(){ |
70 | }); | 95 | }); | ... | ... |
-
Please register or login to post a comment