본문 바로가기
PHP

[PHP] 네이버 단축 url 빠르게 만들기

by teamnova 2021. 4. 23.

안녕하세요.

스틱코드를 활용하여 서버 사이드에서 네이버 단축 url API 빠르게 구현하는 방법을 공유 하겠습니다.

 

네이버 단축 url API를 사용하기 위해서는

네이버 developers 에서 내 애플리케이션을 등록해야 사용이 가능합니다.

 

내 애플리케이션이 등록되어 있다고 가정 하고 설명드리겠습니다.

 

네이버 단축 url API 호출하는 코드는 스틱코드에 등록해놓으면 프로젝트 진행시 불러와서

Naver-Client-Id 와 Naver-Client-Secret 값만 변경해서 사용하면 될 것 같습니다.

 

 

stickode.com/detail.html?no=2058

 

스틱코드

 

stickode.com

 

네이버 단축 URL API 키값 확인 방법

네이버 Developers 내 애플리케이션

 

내 애플리케이션  상세 화면

 

Client ID와 Client Secret 정보를 확인하여 아래 소스 코드에 복사 붙어넣기 하면 됩니다.

 

 

포스팅에서는 php에서 curl을 이용하여 API 요청을 하는 코드 입니다.

curl이 설치되어 있는지 확인이 필요합니다.

 

curl 라이브러리 설치가 되어 있는지 확인 명령어: curl -V

 

미설치되어 있을 경우 결과:

The program 'curl' is currently not installed.

You can install it by typing: apt-get install curl

 

설치 되어 있을 경우 결과:

curl 7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3 Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp smtp smtps telnet tftp Features: GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

 

설치가 안되어 있다면 curl 라이브러리 설치 명령어 : apt-get install curl

 

 

네이버 단축 URL API 소스코드(PHP)

// 네이버 단축URL
$long_url = "https://influencerpick.kr/product/detail?productIdx=410";
$encText = urlencode($long_url);


$url = "https://openapi.naver.com/v1/util/shorturl?url=".$encText;

$is_post = false;
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, $is_post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$headers = array();

$headers[] = "X-Naver-Client-Id: ".{클라이언트 아이디};
$headers[] = "X-Naver-Client-Secret: ".{시크릿 키};

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$naver_response = curl_exec ($ch);

$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close ($ch);

if($status_code == 200)
{

  //문자열 값을 php 배열(오브젝트)로 변환
  $naver_response = json_decode($naver_response);

  //네이버 단축url
  $short_url = $naver_response->result->url;
  
  echo "실제 url : ".$long_url."<br />";
  echo "단축 url : ".$short_url;

} 
else 
{
  // echo "Error 내용:".$naver_response;
  http_response_code(400);
  echo "error_naver_short_url";
  exit();
}

 

네이버 단축 URL API 소스코드 실사용 예시(PHP)

// 네이버 단축URL
$long_url = "https://influencerpick.kr/product/detail?productIdx=410";
$encText = urlencode($long_url);


$url = "https://openapi.naver.com/v1/util/shorturl?url=".$encText;

$is_post = false;
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, $is_post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$headers = array();

$headers[] = "X-Naver-Client-Id: "."AEdsoi21"; //클라이언트 아이디 예시
$headers[] = "X-Naver-Client-Secret: "."aklodjso@12$"; //클라이언트 시크릿 키 예시

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$naver_response = curl_exec ($ch);

$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close ($ch);

if($status_code == 200)
{

  //문자열 값을 php 배열(오브젝트)로 변환
  $naver_response = json_decode($naver_response);

  //네이버 단축url
  $short_url = $naver_response->result->url;
  
  echo "실제 url : ".$long_url."<br />";
  echo "단축 url : ".$short_url;

} 
else 
{
  // echo "Error 내용:".$naver_response;
  http_response_code(400);
  echo "error_naver_short_url";
  exit();
}

 

네이버 단축 URL API 결과 화면

네이버 단축 URL 결과 화면

 

네이버 단축 URL API 코드는 스틱코드에 저장해놓고

프로젝트마다 불러와서 키 값을 넣는 부분만 변경해주면 간단하고 빠르게 구현이 가능할 것 같습니다.