Showing
1 changed file
with
160 additions
and
97 deletions
| 1 | -var lenguage = 'not'; | 1 | +var end = false; |
| 2 | +var count = 0; | ||
| 2 | var express = require('express'); | 3 | var express = require('express'); |
| 3 | const request = require('request'); | 4 | const request = require('request'); |
| 4 | -const TARGET_URL = 'https://api.line.me/v2/bot/message/reply' | 5 | +const TARGET_URL = 'https://api.line.me/v2/bot/message/push' |
| 5 | const TOKEN = 'Ur8nbk2bQAc9KavLSSJv0uzlKWCxCBnOJOKyqbRS1mMHWgJlEOPfb7v+X1DDEHocUmhU7KnPFN+KHt5S3SYd5QmF42aTeQpW2gDVTjyqty1Tn+p6QqEhI/uSz659PBHwczEYn0Plx+akfCNHDPJRpAdB04t89/1O/w1cDnyilFU=' | 6 | const TOKEN = 'Ur8nbk2bQAc9KavLSSJv0uzlKWCxCBnOJOKyqbRS1mMHWgJlEOPfb7v+X1DDEHocUmhU7KnPFN+KHt5S3SYd5QmF42aTeQpW2gDVTjyqty1Tn+p6QqEhI/uSz659PBHwczEYn0Plx+akfCNHDPJRpAdB04t89/1O/w1cDnyilFU=' |
| 6 | -const PAPAGO_URL = 'https://openapi.naver.com/v1/papago/n2mt' | 7 | +const USER_ID = 'Ub5fa0ab321e4713638a85fbfa7ecc20b' |
| 7 | -const PAPAGO_ID = '1Z83W3lUGLqnNbrDAk8A' | ||
| 8 | -const PAPAGO_SECRET = 'ST7ElRPFPP' | ||
| 9 | const fs = require('fs'); | 8 | const fs = require('fs'); |
| 10 | const path = require('path'); | 9 | const path = require('path'); |
| 11 | const HTTPS = require('https'); | 10 | const HTTPS = require('https'); |
| 12 | const domain = "2021105602.osschatbot2022.tk" | 11 | const domain = "2021105602.osschatbot2022.tk" |
| 13 | const sslport = 23023; | 12 | const sslport = 23023; |
| 14 | const bodyParser = require('body-parser'); | 13 | const bodyParser = require('body-parser'); |
| 15 | -const res = require('express/lib/response'); | 14 | +var choosen = []; |
| 16 | var app = express(); | 15 | var app = express(); |
| 17 | -do | 16 | +do{ |
| 18 | -{ | ||
| 19 | app.use(bodyParser.json()); | 17 | app.use(bodyParser.json()); |
| 20 | app.post('/hook', function (req, res) { | 18 | app.post('/hook', function (req, res) { |
| 21 | 19 | ||
| ... | @@ -29,53 +27,101 @@ do | ... | @@ -29,53 +27,101 @@ do |
| 29 | console.log('[request source] ', eventObj.source); | 27 | console.log('[request source] ', eventObj.source); |
| 30 | console.log('[request message]', eventObj.message); | 28 | console.log('[request message]', eventObj.message); |
| 31 | 29 | ||
| 32 | - if(eventObj.message.text=='영어') | 30 | + var msg = eventObj.message.text; |
| 31 | + if(eventObj.message.text == 'start') | ||
| 33 | { | 32 | { |
| 34 | - lenguage='en'; | 33 | + request.post( |
| 35 | - }else if(eventObj.message.text=='일본어') | 34 | + { |
| 35 | + url: TARGET_URL, | ||
| 36 | + headers: { | ||
| 37 | + 'Authorization': `Bearer ${TOKEN}` | ||
| 38 | + }, | ||
| 39 | + json: { | ||
| 40 | + "replyToken":eventObj.replyToken, | ||
| 41 | + "messages":[ | ||
| 42 | + { | ||
| 43 | + "type":"text", | ||
| 44 | + "text":"Hi\nThis is Menu recommend Chatbot!\nIf you follow the instructions, I will recommend the menu!" | ||
| 45 | + }, | ||
| 46 | + { | ||
| 47 | + "type":"text", | ||
| 48 | + "text":"Choose a number\n1. 한식\n2. 중식\n3. 일식\n4. 양식\n5. 기타" | ||
| 49 | + } | ||
| 50 | + ] | ||
| 51 | + } | ||
| 52 | + },(error, response, body) => { | ||
| 53 | + console.log(body) | ||
| 54 | + }); | ||
| 55 | + count++; | ||
| 56 | + }else if(count == 1 & !end) | ||
| 36 | { | 57 | { |
| 37 | - lenguage = 'ja' | 58 | + if(msg == '1' | msg == '2' | msg == '3' | msg == '4' | msg == '5') |
| 38 | - }else if(eventObj.message.text=='프랑스어') | ||
| 39 | - { | ||
| 40 | - lenguage = 'fr' | ||
| 41 | - }else | ||
| 42 | - { | ||
| 43 | - if(lenguage == 'en') | ||
| 44 | - { | ||
| 45 | - trans_en(eventObj.replyToken, eventObj.message.text); | ||
| 46 | - }else if(lenguage == 'ja') | ||
| 47 | - { | ||
| 48 | - trans_ja(eventObj.replyToken, eventObj.message.text); | ||
| 49 | - }else if(lenguage == 'fr') | ||
| 50 | { | 59 | { |
| 51 | - trans_fr(eventObj.replyToken, eventObj.message.text); | 60 | + choosen.push(msg); |
| 52 | - }else | 61 | + count++; |
| 53 | - { | 62 | + request.post( |
| 54 | - trans_en(eventObj.replyToken, '오류'); | 63 | + { |
| 64 | + url: TARGET_URL, | ||
| 65 | + headers: { | ||
| 66 | + 'Authorization': `Bearer ${TOKEN}` | ||
| 67 | + }, | ||
| 68 | + json: { | ||
| 69 | + "replyToken":eventObj.replyToken, | ||
| 70 | + "messages":[ | ||
| 71 | + { | ||
| 72 | + "type":"text", | ||
| 73 | + "text":"Choose a number\n1. 고기\n2. 해산물\n3. 기타" | ||
| 74 | + } | ||
| 75 | + ] | ||
| 76 | + } | ||
| 77 | + },(error, response, body) => { | ||
| 78 | + console.log(body) | ||
| 79 | + }); | ||
| 80 | + }else{ | ||
| 81 | + request.post( | ||
| 82 | + { | ||
| 83 | + url: TARGET_URL, | ||
| 84 | + headers: { | ||
| 85 | + 'Authorization': `Bearer ${TOKEN}` | ||
| 86 | + }, | ||
| 87 | + json: { | ||
| 88 | + "replyToken":eventObj.replyToken, | ||
| 89 | + "messages":[ | ||
| 90 | + { | ||
| 91 | + "type":"text", | ||
| 92 | + "text":"Please choose a number between 1 to 5!" | ||
| 93 | + } | ||
| 94 | + ] | ||
| 95 | + } | ||
| 96 | + },(error, response, body) => { | ||
| 97 | + console.log(body) | ||
| 98 | + }); | ||
| 55 | } | 99 | } |
| 56 | - } | 100 | + }else if(count == 2 & !end) |
| 57 | - | ||
| 58 | - | ||
| 59 | - res.sendStatus(200); | ||
| 60 | - }); | ||
| 61 | -}while(lenguage=='en' | lenguage == 'fr' | lenguage == 'ja'); | ||
| 62 | - | ||
| 63 | -function trans_en(replyToken, message) { | ||
| 64 | - | ||
| 65 | - request.post( | ||
| 66 | { | 101 | { |
| 67 | - url: PAPAGO_URL, | 102 | + if(msg == 1 | msg == 2 | msg==3) |
| 68 | - headers: { | 103 | + { |
| 69 | - 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', | 104 | + choosen.push(msg); |
| 70 | - 'X-Naver-Client-Id': `${PAPAGO_ID}`, | 105 | + count++; |
| 71 | - 'X-Naver-Client-Secret': `${PAPAGO_SECRET}` | 106 | + request.post( |
| 72 | - }, | 107 | + { |
| 73 | - body: 'source=ko&target=en&text=' + message, | 108 | + url: TARGET_URL, |
| 74 | - json:true | 109 | + headers: { |
| 75 | - },(error, response, body) => { | 110 | + 'Authorization': `Bearer ${TOKEN}` |
| 76 | - if(!error && response.statusCode == 200) { | 111 | + }, |
| 77 | - console.log(body.message); | 112 | + json: { |
| 78 | - var transMessage = body.message.result.translatedText; | 113 | + "replyToken":eventObj.replyToken, |
| 114 | + "messages":[ | ||
| 115 | + { | ||
| 116 | + "type":"text", | ||
| 117 | + "text":"Choose a number\n1. 뜨거운 음식\n2. 찬 음식" | ||
| 118 | + } | ||
| 119 | + ] | ||
| 120 | + } | ||
| 121 | + },(error, response, body) => { | ||
| 122 | + console.log(body) | ||
| 123 | + }); | ||
| 124 | + }else{ | ||
| 79 | request.post( | 125 | request.post( |
| 80 | { | 126 | { |
| 81 | url: TARGET_URL, | 127 | url: TARGET_URL, |
| ... | @@ -83,11 +129,11 @@ function trans_en(replyToken, message) { | ... | @@ -83,11 +129,11 @@ function trans_en(replyToken, message) { |
| 83 | 'Authorization': `Bearer ${TOKEN}` | 129 | 'Authorization': `Bearer ${TOKEN}` |
| 84 | }, | 130 | }, |
| 85 | json: { | 131 | json: { |
| 86 | - "replyToken":replyToken, | 132 | + "replyToken":eventObj.replyToken, |
| 87 | "messages":[ | 133 | "messages":[ |
| 88 | { | 134 | { |
| 89 | "type":"text", | 135 | "type":"text", |
| 90 | - "text":transMessage | 136 | + "text":"Please choose a number between 1 to 3!" |
| 91 | } | 137 | } |
| 92 | ] | 138 | ] |
| 93 | } | 139 | } |
| ... | @@ -95,26 +141,31 @@ function trans_en(replyToken, message) { | ... | @@ -95,26 +141,31 @@ function trans_en(replyToken, message) { |
| 95 | console.log(body) | 141 | console.log(body) |
| 96 | }); | 142 | }); |
| 97 | } | 143 | } |
| 98 | - }); | 144 | + }else if(count == 3 & !end) |
| 99 | - | ||
| 100 | -} | ||
| 101 | - | ||
| 102 | -function trans_ja(replyToken, message) { | ||
| 103 | - | ||
| 104 | - request.post( | ||
| 105 | { | 145 | { |
| 106 | - url: PAPAGO_URL, | 146 | + if(msg == 1 | msg == 2) |
| 107 | - headers: { | 147 | + { |
| 108 | - 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', | 148 | + choosen.push(msg); |
| 109 | - 'X-Naver-Client-Id': `${PAPAGO_ID}`, | 149 | + count++; |
| 110 | - 'X-Naver-Client-Secret': `${PAPAGO_SECRET}` | 150 | + request.post( |
| 111 | - }, | 151 | + { |
| 112 | - body: 'source=ko&target=ja&text=' + message, | 152 | + url: TARGET_URL, |
| 113 | - json:true | 153 | + headers: { |
| 114 | - },(error, response, body) => { | 154 | + 'Authorization': `Bearer ${TOKEN}` |
| 115 | - if(!error && response.statusCode == 200) { | 155 | + }, |
| 116 | - console.log(body.message); | 156 | + json: { |
| 117 | - var transMessage = body.message.result.translatedText; | 157 | + "replyToken":eventObj.replyToken, |
| 158 | + "messages":[ | ||
| 159 | + { | ||
| 160 | + "type":"text", | ||
| 161 | + "text":"Choose a number\n1. 국물\n2. 국물 없는 음식" | ||
| 162 | + } | ||
| 163 | + ] | ||
| 164 | + } | ||
| 165 | + },(error, response, body) => { | ||
| 166 | + console.log(body) | ||
| 167 | + }); | ||
| 168 | + }else{ | ||
| 118 | request.post( | 169 | request.post( |
| 119 | { | 170 | { |
| 120 | url: TARGET_URL, | 171 | url: TARGET_URL, |
| ... | @@ -122,11 +173,11 @@ function trans_ja(replyToken, message) { | ... | @@ -122,11 +173,11 @@ function trans_ja(replyToken, message) { |
| 122 | 'Authorization': `Bearer ${TOKEN}` | 173 | 'Authorization': `Bearer ${TOKEN}` |
| 123 | }, | 174 | }, |
| 124 | json: { | 175 | json: { |
| 125 | - "replyToken":replyToken, | 176 | + "replyToken":eventObj.replyToken, |
| 126 | "messages":[ | 177 | "messages":[ |
| 127 | { | 178 | { |
| 128 | "type":"text", | 179 | "type":"text", |
| 129 | - "text":transMessage | 180 | + "text":"Please choose a number between 1 to 2!" |
| 130 | } | 181 | } |
| 131 | ] | 182 | ] |
| 132 | } | 183 | } |
| ... | @@ -134,26 +185,31 @@ function trans_ja(replyToken, message) { | ... | @@ -134,26 +185,31 @@ function trans_ja(replyToken, message) { |
| 134 | console.log(body) | 185 | console.log(body) |
| 135 | }); | 186 | }); |
| 136 | } | 187 | } |
| 137 | - }); | 188 | + }else if(count == 4 & !end) |
| 138 | - | ||
| 139 | -} | ||
| 140 | - | ||
| 141 | -function trans_fr(replyToken, message) { | ||
| 142 | - | ||
| 143 | - request.post( | ||
| 144 | { | 189 | { |
| 145 | - url: PAPAGO_URL, | 190 | + if(msg == 1 | msg == 2) |
| 146 | - headers: { | 191 | + { |
| 147 | - 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', | 192 | + choosen.push(msg); |
| 148 | - 'X-Naver-Client-Id': `${PAPAGO_ID}`, | 193 | + count++; |
| 149 | - 'X-Naver-Client-Secret': `${PAPAGO_SECRET}` | 194 | + request.post( |
| 150 | - }, | 195 | + { |
| 151 | - body: 'source=ko&target=fr&text=' + message, | 196 | + url: TARGET_URL, |
| 152 | - json:true | 197 | + headers: { |
| 153 | - },(error, response, body) => { | 198 | + 'Authorization': `Bearer ${TOKEN}` |
| 154 | - if(!error && response.statusCode == 200) { | 199 | + }, |
| 155 | - console.log(body.message); | 200 | + json: { |
| 156 | - var transMessage = body.message.result.translatedText; | 201 | + "replyToken":eventObj.replyToken, |
| 202 | + "messages":[ | ||
| 203 | + { | ||
| 204 | + "type":"text", | ||
| 205 | + "text":"Choose a number\n1. 매운 음식\n2. 안매운 음식" | ||
| 206 | + } | ||
| 207 | + ] | ||
| 208 | + } | ||
| 209 | + },(error, response, body) => { | ||
| 210 | + console.log(body) | ||
| 211 | + }); | ||
| 212 | + }else{ | ||
| 157 | request.post( | 213 | request.post( |
| 158 | { | 214 | { |
| 159 | url: TARGET_URL, | 215 | url: TARGET_URL, |
| ... | @@ -161,11 +217,11 @@ function trans_fr(replyToken, message) { | ... | @@ -161,11 +217,11 @@ function trans_fr(replyToken, message) { |
| 161 | 'Authorization': `Bearer ${TOKEN}` | 217 | 'Authorization': `Bearer ${TOKEN}` |
| 162 | }, | 218 | }, |
| 163 | json: { | 219 | json: { |
| 164 | - "replyToken":replyToken, | 220 | + "replyToken":eventObj.replyToken, |
| 165 | "messages":[ | 221 | "messages":[ |
| 166 | { | 222 | { |
| 167 | "type":"text", | 223 | "type":"text", |
| 168 | - "text":transMessage | 224 | + "text":"Please choose a number between 1 to 2!" |
| 169 | } | 225 | } |
| 170 | ] | 226 | ] |
| 171 | } | 227 | } |
| ... | @@ -173,9 +229,16 @@ function trans_fr(replyToken, message) { | ... | @@ -173,9 +229,16 @@ function trans_fr(replyToken, message) { |
| 173 | console.log(body) | 229 | console.log(body) |
| 174 | }); | 230 | }); |
| 175 | } | 231 | } |
| 176 | - }); | 232 | + } |
| 177 | 233 | ||
| 178 | -} | 234 | + if(count == 5) |
| 235 | + { | ||
| 236 | + end == true; | ||
| 237 | + } | ||
| 238 | + | ||
| 239 | + res.sendStatus(200); | ||
| 240 | + }); | ||
| 241 | +}while(!end); | ||
| 179 | 242 | ||
| 180 | 243 | ||
| 181 | try { | 244 | try { |
| ... | @@ -192,4 +255,4 @@ try { | ... | @@ -192,4 +255,4 @@ try { |
| 192 | console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.'); | 255 | console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.'); |
| 193 | console.log(error); | 256 | console.log(error); |
| 194 | } | 257 | } |
| 195 | - | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 258 | + | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment