message.js 2.07 KB
var express = require('express');
var router = express.Router();
var bodyparser = require('body-parser');
var request = require('request');

var client_id = 'is216aNtQ6QLNkWW03bc';
var client_secret = 'Ot0BMdWXOJ';

router.use(bodyparser.urlencoded({extended: false}));
router.use(bodyparser.json());

router.post('/', function(req, res, next) {
  const _obj = {
    user_key: req.body.user_key,
    type: req.body.type,
    content: req.body.content
  };
//응답
  var choice = _obj.content;
  switch (choice) {
    case '설정':
      res.json({
        "message": {
          "text": "언어를 설정합니다"
        }, "keyboard":{
          "type": "buttons",
          "buttons":["한-영", "영-한"]
        }
      });
      

      break;
    case '번역':
      res.json({
        "message": {
          "text": "번역할 문장을 적어주세요"
        }, "keyboard":{
          "type": "text"
        }
      });

      var query = req.body.content;
      app.get('/translate', function (req, res) {
        var api_url = 'https://openapi.naver.com/v1/language/translate';
        var options = {
          url: api_url,
          form: {'source':'ko', 'target':'en', 'text':query},
          headers: {'X-Naver-Client-Id':client_id, 'X-Naver-Client-Secret': client_secret}
        };
        request.post(options, function (error, response, body) {
          if (!error && response.statusCode == 200) {
            var translated = JSON.parse(response.body);

            let message = {
              "message": {
                "text": translated.message.result.translatedText
              },
            };
            res.set({
              'content-type': 'applcation/json'
            }).send(JSON.stringify(message));

          } else {
            res.status(response.statusCode).end();
            console.log('error = ' + response.statusCode);
          }

        });
      });

      break;
    case '사전':
      res.json({
        "message": {
          "text": "검색할 단어를 적어주세요"
        }
      });

      break;
     }
});

module.exports = router;