Admin API를 이용한 샘플 소스

  • 초기에 App 개발을 시작하는데 보다 쉽게 시작할 수 있도록 샘플 레퍼런스를 제공하고 있습니다.
  • 샘플 레퍼런스는 기본적인 필수 코드로만 구성되어 있기 때문에 참고용으로만 사용할 수 있습니다.
  • 샘플 레퍼런스 소스코드는 php 기반으로 작성된 코드를 제공합니다.

기본구조

Access_Token을 발급받고 API를 호출하여 결과데이터를 얻는 것에 대한 기본적인 구조는 아래와 같습니다.

토큰을 이용한 API 호출 샘플 소스코드

1. 쇼핑몰운영자가 App을 실행

  • 쇼핑몰 운영자가 App을 실행하는 경우 개발자센터에서 App 생성시 입력한 App URL 경로로 앱을 최초 실행합니다.
  • 아래의 샘플소스는 App이 최초에 실행될 때 노출되는 페이지를 의미합니다.
샘플 예시 <html><body>- 앱실행 완료 -<p><a href="{https://개발자 센터 Redirect URL(s)에 등록된 인증코드 요청 할 url (2번 URL) }"> API 자격증명 얻기 </a></p> <p><a href="{https://(4번 URL) }"> API 호출 하기 </a></p> </body></html>
  • - App이 실행될 때 아래의 형식으로 App을 실행한 쇼핑몰 및 운영자 정보가 전달됩니다.

https://{{AppUrl}}/?is_multi_shop={{멀티쇼핑몰여부}}&lang={{쇼핑몰언어}}&mall_id={{몰아이디}}&shop_no={{shop_no}}& timestamp= {{timestamp}}&user_id={{로그인아이디}}&user_name={{로그인사용자이름}}&user_type={{사용자유형}}&hmac={{검증용 key}}

2. 쇼핑몰운영자에게 API호출에 대한 권한동의 승인요청

  • 쇼핑몰운영자에게 API 호출에 대한 권한을 동의받고(Access_Token을 발급받고) App을 설치요청 하는 단계입니다.
< ? php $sMallID = '{몰아이디}'; $sClientID = '{클라이언트 아이디(App key)}'; $sAuthCodeReceiveUrl = '{https://개발자 센터 Redirect URL(s)에 등록된, 응답받을 인증코드를 처리할 url (3번 URL) }'; // https:// 사용 $sScope = 'mall.write_product,mall.read_store,{추가스코프..}'; // API 권한(Scope) 가이드 참고 $aState = array( 'mall_id' => $sMallID, // 고정 '{임의값a}' => '{임의값b}' // 코드발급 이후 처리에 필요한 값 필요시 추가 ); // 이하 공통 $sAuthCodeRequestUrl = sprintf("https://%s.cafe24api.com/api/v2/oauth/authorize?", $sMallID); $aRequestData = array( 'response_type'=>'code', 'client_id'=>$sClientID, 'state'=> base64_encode(json_encode($aState)), 'redirect_uri'=> $sAuthCodeReceiveUrl, 'scope'=> $sScope, ); $sUrl = $sAuthCodeRequestUrl . http_build_query($aRequestData); header('Location: ' . $sUrl);
  • 1) '$sMallID' : 쇼핑몰 아이디
  • API 권한을 요청할 쇼핑몰의 아이디를 입력합니다.
  • 실제 서비스 단계에서는 App이 설치된 쇼핑몰 아이디가 App에 파라미터로 전달됩니다. (1번의 쇼핑몰 및 운영자정보 참고 또는 하단 참고)
- App에 전달된 쇼핑몰 운영자 정보

https://{{AppUrl}}/?is_multi_shop={{멀티쇼핑몰여부}}&lang={{쇼핑몰언어}}&mall_id={{몰아이디}}&shop_no={{shop_no}}& timestamp={{timestamp}}&user_id={{로그인아이디}}&user_name={{로그인사용자이름}}&user_type={{사용자유형}}&hmac={{검증용 key}}>


- 개발중인 소스코드 < ? php $sMallID = '{몰아이디}'; $sClientID = '{클라이언트 아이디(App key)}'; $sAuthCodeReceiveUrl = '{https://개발자 센터 Redirect URL(s)에 등록된, 응답받을 인증코드를 처리할 url (3번 URL) }'; // https:// 사용 $sScope = 'mall.write_product,mall.read_store,{추가스코프..}'; // API 권한(Scope) 가이드 참고 $aState = array( 'mall_id' => $sMallID, // 고정 '{임의값a}' => '{임의값b}' // 코드발급 이후 처리에 필요한 값 필요시 추가 );
  • 2) '$sClientID' : 클라이언트 아이디(App Key)
  • 개발자센터에서 발급받은 App Key를 입력합니다.
- 개발중인 소스코드 < ? php $sMallID = '{몰아이디}'; $sClientID = '{클라이언트 아이디(App key)}'; $sAuthCodeReceiveUrl = '{https://개발자 센터 Redirect URL(s)에 등록된, 응답받을 인증코드를 처리할 url (3번 URL) }'; // https:// 사용 $sScope = 'mall.write_product,mall.read_store,{추가스코프..}'; // API 권한(Scope) 가이드 참고 $aState = array( 'mall_id' => $sMallID, // 고정 '{임의값a}' => '{임의값b}' // 코드발급 이후 처리에 필요한 값 필요시 추가 );
  • 3) '$sAuthCodeReceiveUrl' : 개발자센터 Redirect URL(s)에 등록된 URL
  • 개발자센터에서 입력한 응답받을 인증코드를 처리할 URL인 Redirect URL(s)을 입력합니다.
- 개발중인 소스코드 < ? php $sMallID = '{몰아이디}'; $sClientID = '{클라이언트 아이디(App key)}'; $sAuthCodeReceiveUrl = '{https://개발자 센터 Redirect URL(s)에 등록된, 응답받을 인증코드를 처리할 url (3번 URL) }'; // https:// 사용 $sScope = 'mall.write_product,mall.read_store,{추가스코프..}'; // API 권한(Scope) 가이드 참고 $aState = array( 'mall_id' => $sMallID, // 고정 '{임의값a}' => '{임의값b}' // 코드발급 이후 처리에 필요한 값 필요시 추가 );
  • Redirect Url(s)를 여러개 입력하고 입력된 URL에 모두 코드발급 토큰을 받고 싶으신 경우 콤마(,)로 입력할 수 있습니다.
- 예시) Redirect Url(s)를 여러개 입력하고 싶은 경우 (도메인이 aaa.com, bbb.com, ccc.com인 경우) < ? php $sMallID = '{몰아이디}'; $sClientID = '{클라이언트 아이디(App key)}'; $sAuthCodeReceiveUrl = 'https://www.aaa.com,https://www.bbb.com,https://www.ccc.com'; // https:// 사용 $sScope = 'mall.write_product,mall.read_store,{추가스코프..}'; // API 권한(Scope) 가이드 참고 $aState = array( 'mall_id' => $sMallID, // 고정 '{임의값a}' => '{임의값b}' // 코드발급 이후 처리에 필요한 값 필요시 추가 );
  • 4) '$sScope' : 쇼핑몰 API 권한(Scope) 정보
  • API를 이용하여 정보를 취득한 쇼핑몰 데이터의 권한을 입력해야 합니다.(상세 내용은 'API 권한(Scope) 가이드' 참고)
- 개발중인 소스코드 < ? php $sMallID = '{몰아이디}'; $sClientID = '{클라이언트 아이디(App key)}'; $sAuthCodeReceiveUrl = '{https://개발자 센터 Redirect URL(s)에 등록된, 응답받을 인증코드를 처리할 url (3번 URL) }'; // https:// 사용 $sScope = 'mall.write_product,mall.read_store,{추가스코프..}'; // API 권한(Scope) 가이드 참고 $aState = array( 'mall_id' => $sMallID, // 고정 '{임의값a}' => '{임의값b}' // 코드발급 이후 처리에 필요한 값 필요시 추가 );
  • - 입력 예시 : 상품분류 (읽기권한), 상품 (읽기+쓰기권한) 을 개발자센터에서 지정 후 소스코드에 반영하는 경우
- 개발중인 소스코드 < ? php $sMallID = '{몰아이디}'; $sClientID = '{클라이언트 아이디(App key)}'; $sAuthCodeReceiveUrl = 'https://www.aaa.com,https://www.bbb.com,https://www.ccc.com'; // https:// 사용 $sScope = 'mall.read_category,mall.read_product,mall.write_product'; // API 권한(Scope) 가이드 참고 $aState = array( 'mall_id' => $sMallID, // 고정 '{임의값a}' => '{임의값b}' // 코드발급 이후 처리에 필요한 값 필요시 추가 );
  • * API의 사용권한이 추가/변경/삭제 되는 경우 반드시 쇼핑몰에 변경된 권한에 대한 동의 후 Access_Token을 재발급 받아야 정상적인 API 호출이 가능합니다.

3. 자격증명(access_token) 요청

  • App에서 API를 호출하기 위한 Access_Token 발급 단계입니다.
< ? php $sClientId = '{클라이언트 아이디(App key)}'; $sClientSecret = '{클라이언트 시크릿(App secret key)}'; $sThisUrl = '{https://개발자 센터 Redirect URL(s)에 등록된, 현재페이지 url}'; // https:// 사용 $sCode = $_REQUEST['code']; $sStatus = $_REQUEST['state']; // 이하 공통 $aStatue = json_decode(base64_decode($sStatus), true); $aFields = array( 'grant_type' => 'authorization_code', 'code' => $sCode, 'redirect_uri' => $sThisUrl ); $oCurl = curl_init(); curl_setopt_array($oCurl, array( CURLOPT_URL => 'https://' . $aStatue['mall_id'] . '.cafe24api.com/api/v2/oauth/token', CURLOPT_POSTFIELDS => http_build_query($aFields), CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => array( 'Authorization: Basic ' . base64_encode($sClientId . ':' . $sClientSecret) ) )); $sResponse = curl_ex ec($oCurl); // 정상 토큰발급 응답인지 확인용 출력해보기 echo "<pre>"; print_r($sResponse);exit;

4. 인증된 API 호출

  • App에서 발급받은 Access_Token을 이용하여 API를 호출하는 단계입니다.
< ? php $sAcctoken = '{3번에서 발급 받은 access_token 값}'; $sEndPointUrl = 'https://{몰아이디}.cafe24api.com/api/v2/admin/products'; // 이하 공통 $oCurl = curl_init(); curl_setopt_array($oCurl, array( CURLOPT_URL => $sEndPointUrl, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => array('Authorization: Bearer ' . $sAcctoken) )); $sResponse = curl_ex ec($oCurl); // API 호출이 정상인지 출력해보기 echo "<pre>"; print_r($sResponse);exit;

스크립트 자동설치 샘플 소스코드

  • App에서 카페24 쇼핑몰 플랫폼의 Front 화면에 스크립트(Script)를 삽입해야 하는 경우 스크립트 API 를 통해 쉽고 편리하게 원하는 화면에 스크립트를 설치(삽입)할 수 있습니다. 설치할 화면명은 화면코드 API 를 통해 확인하실 수 있습니다.
  • 쇼핑몰 Front에 반영되는 스크립트(Script)는 개발사의 런타임 서버의 스크립트를 호출하여 동작합니다.

예제) Front 화면에 스크립트를 자동 설치하는 소스코드(PHP 소스로 제공)

< ? php $sAcctoken = '{{발급받은 access_token 값}}'; $sEndPointUrl = 'https://{{몰아이디}}.cafe24api.com/api/v2/admin/scripttags'; $aPostData = array( "shop_no" => {{설치할 쇼핑몰 번호(shop_no)}}, "request" => array( "client_id" => "{{App key(Client_id)}}", "src" => "{{설치할 스크립트 파일 (*.js)}}", "display_location" => "{{화면 코드}}" // The screen on which the *.js is inserted. ) ); // Commonal code $oCurl = curl_init(); curl_setopt_array($oCurl, array( CURLOPT_URL => $sEndPointUrl, CURLOPT_POST => 1, CURLOPT_POSTFIELDS => json_encode($aPostData), CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => array('Authorization: Bearer ' . $sAcctoken, "Content-Type: application/json") )); $sResponse = curl_ex ec($oCurl); echo 'Successfully inserted'; exit;