shorturl
- 인쇄
- PDF
shorturl
- 인쇄
- PDF
기사 요약
이 요약이 도움이 되었나요?
의견을 보내 주셔서 감사합니다.
개요
입력된 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-pub.fin-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-pub.fin-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-pub.fin-ntruss.com/util/v1/shorturl?url={단축하고자 하는 원본 URL}'
요청 파라미터
GET 방식으로 호출할 경우, 파라미터로 전송할 수 있습니다.
요청 변수명 | 타입 | 필수 여부 | 기본값 | 설명 |
---|---|---|---|---|
url | string | Y | - | 단축하고자 하는 원본 URL |
요청 헤더
헤더명 | 설명 |
---|---|
X-NCP-APIGW-API-KEY-ID | 앱 등록 시 발급받은 Client IDX-NCP-APIGW-API-KEY-ID:{Client ID} |
X-NCP-APIGW-API-KEY | 앱 등록 시 발급 받은 Client SecretX-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-pub.fin-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 예제
{{% code-template %}}
// 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-pub.fin-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-pub.fin-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-pub.fin-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-pub.fin-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-pub.fin-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(요청 URL 오류) | |
403 | 2403 | Forbidden URL(API 사용 권한 오류) | |
403 | 3403 | Unavailable URL(존재하지 않거나 안전하지 않은 URL) | |
500 | 1500 | Internal server error(내부 서버 오류) | 고객 문의로 문의 |
이 문서가 도움이 되었습니까?