Showing
2 changed files
with
78 additions
and
38 deletions
cfr_module.js
0 → 100644
| 1 | +var client_id = 'v3M4wjolGLkrvNA3GUIW'; | ||
| 2 | +var client_secret = 'fKF6vjkWhE'; | ||
| 3 | +var fs = require('fs'); | ||
| 4 | +var request = require('request'); | ||
| 5 | +const path = require('path'); | ||
| 6 | +var express = require('express'); | ||
| 7 | +var app = express(); | ||
| 8 | +var domain = "www.osstest237.ml" | ||
| 9 | +const sslport = 23023; | ||
| 10 | +const HTTPS = require('https'); | ||
| 11 | + | ||
| 12 | +exports.imgtodata = function(dir){ | ||
| 13 | + var api_url = 'https://openapi.naver.com/v1/vision/face'; // 얼굴 감지 | ||
| 14 | + | ||
| 15 | + var _formData = { | ||
| 16 | + image:'image', | ||
| 17 | + image: fs.createReadStream(path.join(__dirname, dir)) // FILE 이름 | ||
| 18 | + }; | ||
| 19 | + | ||
| 20 | + request.post( | ||
| 21 | + { url:api_url, | ||
| 22 | + formData:_formData, | ||
| 23 | + headers: {'X-Naver-Client-Id':client_id, | ||
| 24 | + 'X-Naver-Client-Secret': client_secret} | ||
| 25 | + }, (err,response,body) =>{ | ||
| 26 | + console.log(response.statusCode); // 200 | ||
| 27 | + //console.log(response.headers['content-type']) | ||
| 28 | + | ||
| 29 | + data=JSON.parse(body); | ||
| 30 | + gender=data.faces[0].gender.value; | ||
| 31 | + emotion=data.faces[0].emotion.value | ||
| 32 | + | ||
| 33 | + console.log(gender); | ||
| 34 | + console.log(emotion); | ||
| 35 | + | ||
| 36 | + //return {gender:gender,emotion:emotion}; | ||
| 37 | + }); | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | + try { | ||
| 41 | + const option = { | ||
| 42 | + ca: fs.readFileSync('/etc/letsencrypt/live/' + domain +'/fullchain.pem'), | ||
| 43 | + key: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/privkey.pem'), 'utf8').toString(), | ||
| 44 | + cert: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/cert.pem'), 'utf8').toString(), | ||
| 45 | + }; | ||
| 46 | + HTTPS.createServer(option, app).listen(sslport, () => { | ||
| 47 | + console.log(`[HTTPS] Server is started on port ${sslport}`); | ||
| 48 | + }); | ||
| 49 | + } catch (error) { | ||
| 50 | + console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.'); | ||
| 51 | + console.log(error); | ||
| 52 | +} | ||
| 53 | + | ||
| 54 | +//imgtodata('./test3.jpg'); | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -3,12 +3,12 @@ var client_id = 'v3M4wjolGLkrvNA3GUIW'; | ... | @@ -3,12 +3,12 @@ var client_id = 'v3M4wjolGLkrvNA3GUIW'; |
| 3 | var client_secret = 'fKF6vjkWhE'; | 3 | var client_secret = 'fKF6vjkWhE'; |
| 4 | const request = require('request'); | 4 | const request = require('request'); |
| 5 | const TARGET_URL = 'https://api.line.me/v2/bot/message/reply' | 5 | const TARGET_URL = 'https://api.line.me/v2/bot/message/reply' |
| 6 | -const TOKEN = 'hMnfhBQc8nadyn5Ow6aejAVDUoUEp9N8YxOFxfOB2V83TOf0vjquT4cC8ll4Ccq4hkWJ8xHij53FzjMteqLLuUL6bZs+ZONI+f5aawIulRg4Y4FFBGp1O03awvgxGn503iyI7+5iQCEi80Kus6cRZQdB04t89/1O/w1cDnyilFU=' //수정해주세용 | 6 | +const TOKEN = 'w5i8sURqF5bof6DWeB87n+oCeWrYaFf7a5YZzfzN1jeITIlZ3PcOmZRcdGCo/djTuHhNxybfJ69y7Jex+7tipBNRynngfyWX9CK1L3EupuhnX8rubeCmJda7HvsQWXVo8ZDcwl2aLwXsE3kiYF2qEwdB04t89/1O/w1cDnyilFU=' //수정해주세용 |
| 7 | -const SECRET = '270103fd4cbd81695ceb6d0ed7f85f4b' //수정해주세용 | 7 | +const SECRET = 'b0b4501ebc2813a2b0e586293a35b466' //수정해주세용 |
| 8 | const fs = require('fs'); | 8 | const fs = require('fs'); |
| 9 | const path = require('path'); | 9 | const path = require('path'); |
| 10 | const HTTPS = require('https'); | 10 | const HTTPS = require('https'); |
| 11 | -const domain = "www.osschatbot.tk" //수정해주세용 | 11 | +const domain = "www.osstest237.ml" //수정해주세용 |
| 12 | const sslport = 23023; | 12 | const sslport = 23023; |
| 13 | const line = require('@line/bot-sdk'); | 13 | const line = require('@line/bot-sdk'); |
| 14 | 14 | ||
| ... | @@ -260,7 +260,7 @@ function QuickReplyCfrYes(replyToken) { | ... | @@ -260,7 +260,7 @@ function QuickReplyCfrYes(replyToken) { |
| 260 | "messages": [ | 260 | "messages": [ |
| 261 | { | 261 | { |
| 262 | "type": "text", | 262 | "type": "text", |
| 263 | - "text": "사진을 입력해주세요.", | 263 | + "text": "사진을 입력해주세요. 얼굴 인식이 되지 않을 경우 위치 기반으로 추천됩니다.", |
| 264 | "quickReply": quickReplyCfrYes | 264 | "quickReply": quickReplyCfrYes |
| 265 | } | 265 | } |
| 266 | ] | 266 | ] |
| ... | @@ -350,6 +350,12 @@ function RecommendationResult(replyToken, query) { | ... | @@ -350,6 +350,12 @@ function RecommendationResult(replyToken, query) { |
| 350 | 350 | ||
| 351 | roadAddress = data.items[0].roadAddress; | 351 | roadAddress = data.items[0].roadAddress; |
| 352 | console.log(roadAddress); | 352 | console.log(roadAddress); |
| 353 | + | ||
| 354 | + var x = Number(data.items[0].mapx); | ||
| 355 | + var y = Number(data.items[0].mapy); | ||
| 356 | + | ||
| 357 | + var longitude = TMtoWGS(x, y)[0]; | ||
| 358 | + var latitude = TMtoWGS(x, y)[1]; | ||
| 353 | 359 | ||
| 354 | request.post( | 360 | request.post( |
| 355 | { | 361 | { |
| ... | @@ -360,41 +366,21 @@ function RecommendationResult(replyToken, query) { | ... | @@ -360,41 +366,21 @@ function RecommendationResult(replyToken, query) { |
| 360 | json: { | 366 | json: { |
| 361 | "replyToken": replyToken, | 367 | "replyToken": replyToken, |
| 362 | "messages": [ | 368 | "messages": [ |
| 363 | - /*{ | 369 | + { |
| 364 | - "type": "imagemap", | 370 | + "type":"location", |
| 365 | - // 이미지 불러올 수 없습니다 뜸 | 371 | + "title": title, |
| 366 | - "baseUrl": "https://www.flaticon.com/free-icon/food-store_2934069?term=restaurant&page=1&position=7&related_item_id=2934069", | 372 | + "address": address, |
| 367 | - "altText": "이미지를 누르시면 해당 가게로 이동합니다.", | 373 | + "latitude": latitude, |
| 368 | - "baseSize": { | 374 | + "longitude": longitude |
| 369 | - "width": 1040, | ||
| 370 | - "height": 1040 | ||
| 371 | }, | 375 | }, |
| 372 | - "actions": [ | 376 | + { |
| 373 | - { | 377 | + "type": "text", |
| 374 | - "type": "uri", | 378 | + "text": "맛집 이름: " + title |
| 375 | - "linkUri": link, // 가게 링크 | 379 | + }, |
| 376 | - "area": { | 380 | + { |
| 377 | - "x": 0, | 381 | + "type":"text", |
| 378 | - "y": 0, | 382 | + "text": "맛집 주소: " + address |
| 379 | - "width": 1040, | 383 | + } |
| 380 | - "height": 1040 | ||
| 381 | - } | ||
| 382 | - } | ||
| 383 | - ] | ||
| 384 | - },*/ | ||
| 385 | - { | ||
| 386 | - "type": "text", | ||
| 387 | - "text": "맛집 이름: " + title | ||
| 388 | - }, | ||
| 389 | - { | ||
| 390 | - "type":"text", | ||
| 391 | - "text": "맛집 주소: " + address | ||
| 392 | - } | ||
| 393 | - /*{ | ||
| 394 | - "type":"location", | ||
| 395 | - "title":"맛집 주소", | ||
| 396 | - "address":address | ||
| 397 | - }*/ | ||
| 398 | ] | 384 | ] |
| 399 | } | 385 | } |
| 400 | }, (error, response, body) => { | 386 | }, (error, response, body) => { | ... | ... |
-
Please register or login to post a comment