shorturl
    • PDF

    shorturl

    • PDF

    Article Summary

    개요

    입력된 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 방식으로 호출할 경우, 파라미터로 전송할 수 있습니다.

    요청 변수명타입필수 여부기본값설명
    urlstringY-단축하고자 하는 원본 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 방식으로 전송할 수 있습니다.

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

    응답

    응답 바디

    필드타입설명
    hashstring단축 URL Hash 정보
    urlstring단축된 URL
    orgUrlstring원본 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":"https://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 코드오류 코드오류 메시지조치 방안
    4031403Invalid URL(요청 URL 오류)
    4032403Forbidden URL(API 사용 권한 오류)
    4033403Unavailable URL(존재하지 않거나 안전하지 않은 URL)
    5001500Internal server error(내부 서버 오류)고객 문의로 문의

    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.