shorturl

개요

입력된 URL을 me2.do 형태로 짧은 URL로 변환해주는 REST API입니다.

요청

  • POST FORM 방식

    curl -i -X POST \
    -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \
    -H "X-NCP-APIGW-API-KEY-ID: {애플리케이션 등록 시 발급받은 client id 값}" \
    -H "X-NCP-APIGW-API-KEY: {애플리케이션 등록 시 발급받은 client secret 값}" \
    -d "url={단축하고자 하는 원본 URL}" \
    "https://naveropenapi.apigw.ntruss.com/util/v1/shorturl"
    
  • POST JSON 방식

    curl -i -X POST \
    -H "X-NCP-APIGW-API-KEY-ID:{애플리케이션 등록 시 발급받은 client id 값}" \
    -H "X-NCP-APIGW-API-KEY:{애플리케이션 등록 시 발급받은 client secret 값}" \
    -H "Content-Type:application/json" \
    -d '{"url": "{단축하고자 하는 원본 URL}"}' \
    'https://naveropenapi.apigw.ntruss.com/util/v1/shorturl'
    
  • GET 방식

    curl -i -X GET \
    -H "X-NCP-APIGW-API-KEY-ID:{애플리케이션 등록 시 발급받은 client id 값}" \
    -H "X-NCP-APIGW-API-KEY:{애플리케이션 등록 시 발급받은 client secret 값}" \
    'https://naveropenapi.apigw.ntruss.com/util/v1/shorturl?url={단축하고자 하는 원본 URL}'
    

요청 파라미터

GET 방식으로 호출할 경우, 파라미터로 전송할 수 있습니다.

요청 변수명 타입 필수 여부 기본값 설명
url string Y - 단축하고자 하는 원본 URL

요청 헤더

헤더명 설명
X-NCP-APIGW-API-KEY-ID 앱 등록 시 발급받은 Client ID
X-NCP-APIGW-API-KEY-ID:{Client ID}
X-NCP-APIGW-API-KEY 앱 등록 시 발급 받은 Client Secret
X-NCP-APIGW-API-KEY:{Client Secret}

요청 바디

POST 방식으로 호출할 경우, FORM, JSON 방식으로 전송할 수 있습니다.

요청 변수명 타입 필수 여부 기본값 설명
url string Y - 단축하고자 하는 원본 URL

응답

응답 바디

필드 타입 설명
hash string 단축 URL Hash 정보
url string 단축된 URL
orgUrl string 원본 URL

예시

요청 예시

curl "https://naveropenapi.apigw.ntruss.com/util/v1/shorturl" \
   -d "url=http://d2.naver.com/helloworld/4874130" \
   -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \
   -H "X-NCP-APIGW-API-KEY-ID: {애플리케이션 등록 시 발급받은 client id 값}" \
   -H "X-NCP-APIGW-API-KEY: {애플리케이션 등록 시 발급받은 client secret 값}" -v

응답 예시

{
    "message":"ok",
    "result": {
        "hash":"GyvykVAu",
        "url":"http://me2.do/GyvykVAu",
        "orgUrl":"http://d2.naver.com/helloworld/4874130"
    }
    ,"code":"200"
}

API 예제

// nShortURL API 예제
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

public class APIExamURL {

    public static void main(String[] args) {
        String clientId = "YOUR_CLIENT_ID";//애플리케이션 클라이언트 아이디값";
        String clientSecret = "YOUR_CLIENT_SECRET";//애플리케이션 클라이언트 시크릿값";
        try {
            String text = "https://developers.naver.com/notice";
            String apiURL = "https://naveropenapi.apigw.ntruss.com/util/v1/shorturl";
            URL url = new URL(apiURL);
            HttpURLConnection con = (HttpURLConnection)url.openConnection();
            con.setRequestMethod("POST");
            con.setRequestProperty("Content-Type", "application/json");
            con.setRequestProperty("X-NCP-APIGW-API-KEY-ID", clientId);
            con.setRequestProperty("X-NCP-APIGW-API-KEY", clientSecret);
            // post request
            JSONObject json = new JSONObject();
            json.put("url", text);
            String postParams = json.toString();
            DataOutputStream wr = new DataOutputStream(con.getOutputStream());
            wr.writeBytes(postParams);
            wr.flush();
            wr.close();
            int responseCode = con.getResponseCode();
            BufferedReader br;
            if(responseCode==200) { // 정상 호출
                br = new BufferedReader(new InputStreamReader(con.getInputStream()));
            } else {  // 오류 발생
                br = new BufferedReader(new InputStreamReader(con.getErrorStream()));
            }
            String inputLine;
            StringBuffer response = new StringBuffer();
            while ((inputLine = br.readLine()) != null) {
                response.append(inputLine);
            }
            br.close();
            System.out.println(response.toString());
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}
// 네이버 단축URL Open API 예제
<?php
  $client_id = "YOUR_CLIENT_ID";
  $client_secret = "YOUR_CLIENT_SECRET";
  $encText = urlencode("https://developers.naver.com/docs/utils/shortenurl");
  $postvars = "url=".$encText;
  $url = "https://naveropenapi.apigw.ntruss.com/util/v1/shorturl";
  $is_post = true;
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_POST, $is_post);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch,CURLOPT_POSTFIELDS, $postvars);
  $headers = array();
  $headers[] = "X-NCP-APIGW-API-KEY-ID: ".$client_id;
  $headers[] = "X-NCP-APIGW-API-KEY: ".$client_secret;
  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  $response = curl_exec ($ch);
  $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "status_code:".$status_code."<br />";
  curl_close ($ch);
  if($status_code == 200) {
    echo $response;
  } else {
    echo "Error 내용:".$response;
  }
?>
// nShortURL API 예제
var express = require('express');
var app = express();
var client_id = 'YOUR_CLIENT_ID';
var client_secret = 'YOUR_CLIENT_SECRET';
var query = encodeURI('https://developers.naver.com/docs/utils/shortenurl');
app.post('/url', function(req, res) {
  var api_url = 'https://naveropenapi.apigw.ntruss.com/util/v1/shorturl';
  var request = require('request');
  var options = {
    url: api_url,
    form: { url: query },
    headers: { 'X-NCP-APIGW-API-KEY-ID': client_id, 'X-NCP-APIGW-API-KEY': client_secret },
  };
  request.get(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://127.0.0.1:3000/url app listening on port 3000!');
});
# 네이버 단축URL Open API 예제
import os
import sys
import urllib.request
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
encText = urllib.parse.quote("https://developers.naver.com/docs/utils/shortenurl")
data = "url=" + encText
url = "https://naveropenapi.apigw.ntruss.com/util/v1/shorturl"
request = urllib.request.Request(url)
request.add_header("X-NCP-APIGW-API-KEY-ID",client_id)
request.add_header("X-NCP-APIGW-API-KEY",client_secret)
response = urllib.request.urlopen(request, data=data.encode("utf-8"))
rescode = response.getcode()
if(rescode==200):
    response_body = response.read()
    print(response_body.decode('utf-8'))
else:
    print("Error Code:" + rescode)
using System;
using System.Net;
using System.Text;
using System.IO;

namespace NaverAPI_Guide
{
    public class APIExamURL
    {
        static void Main(string[] args)
        {
            string url = "https://naveropenapi.apigw.ntruss.com/util/v1/shorturl";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Headers.Add("X-NCP-APIGW-API-KEY-ID", "YOUR_CLIENT_ID"); // Client ID
            request.Headers.Add("X-NCP-APIGW-API-KEY", "YOUR_CLIENT_SECRET"); // Client Secret
            request.Method = "POST";
            string query = "https://developers.naver.com/docs/utils/shortenurl"; // 단축할 URL 대상
            byte[] byteDataParams = Encoding.UTF8.GetBytes("url=" + query);
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = byteDataParams.Length;
            Stream st = request.GetRequestStream();
            st.Write(byteDataParams, 0, byteDataParams.Length);
            st.Close();
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream stream = response.GetResponseStream();
            StreamReader reader = new StreamReader(stream, Encoding.UTF8);
            string text = reader.ReadToEnd();
            stream.Close();
            response.Close();
            reader.Close();
            Console.WriteLine(text);
        }
    }
}

오류 코드

HTTP 코드 오류 코드 오류 메시지 조치 방안
403 1403 Invalid url
403 2403 Forbidden url
500 1500 Internal Server Error 서버 내부 오류가 발생하였습니다. 고객 문의에 문의 주시기 바랍니다.