본문 바로가기

프로그래밍

[nodejs] 네이버 단축 URL API 사용하기

네이버 API에서 제공하는 단축 URL을 생성하는 간단한 Nodejs 소스입니다.

단축 링크로 변경할 URL Parameter를 전송하면 "me2.do/abcdefg" 형태로 단축 링크가 생성되어 반환됩니다.

쉽게 테스트 할 수 있도록 웹페이지에 텍스트 입력창을 사용하여 URL 전송 및 결과를 확인합니다.

 

다양한 예제 및 튜토리얼은 아래 네이버 개발자 페이지에서 확인할 수 있습니다.

developers.naver.com/docs/utils/shortenurl/

 

단축 URL API 적용 가이드

단축 URL API는 원본 URL을 `http://me2.do/example`과 같은 형태의 짧은 URL로 반환하는 RESTful API입니다.

developers.naver.com

 

 

process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0;

var express = require('express');
var app = express();
const bodyParser = require('body-parser');

var client_id = 'CLIENT_ID';//개발자센터에서 발급받은 Client ID
var client_secret = 'CLIENT_SECRET'; //개발자센터에서 발급받은 Client Secret

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: true
}));

app.get('/url', function (req, res) {
  let contents = '';
  contents += '<html><body>';
  contents += '   <form action="/" method="POST" >';
  contents += '       URL : <input type="text" name="shorturl" />';
  contents += '       <input type="submit" />';
  contents += '   </form>';
  contents += '</body></html>';

  res.send(contents);

});

app.post('/', (req, res, next) => {
  var shorturl = req.body.shorturl;
  console.log("shorturl : " + shorturl);

  var query = encodeURI(shorturl);
  var api_url = 'https://openapi.naver.com/v1/util/shorturl';
  var request = require('request');
  var options = {
      url: api_url,
      form: {'url':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) {
      res.writeHead(200, {'Content-Type': 'text/json;charset=utf-8'});
      res.end(body);
    } else {
      res.status(response.statusCode).end();
      console.log('error = ' + response.statusCode);
    }
  });


});

app.listen(3000, function () {
  console.log('http://localhost:3000/url app listening on port 3000!');
});