[API] Cafe24, 쇼핑몰에 스크립트 태그 심기 [스크립트 추가할 쇼핑몰 번호와 스킨 번호 알아내기]

2023. 10. 11. 13:48·▣ Tools/API🎯
728x90
1) OAuth 인증 과정 구현하기(1) : 개발자센터 세팅
2) OAuth 인증 과정 구현하기(2) : 인증코드 발급 받기
3) OAuth 인증 과정 구현하기(3) : 엑세스 토큰 발급 받기
4) Cafe24 쇼핑몰에 스크립트 태그 심기
5) Cafe24 쇼핑몰 로그인 여부 확인하기
6) Cafe24 API, 로컬환경에서 테스트하는 방법
7) Cafe24 API, 호출건수 제한, 요청건수 제한의 의미

- Cafe24, 쇼핑몰에 스크립트 태그 심기

엑세스 토큰을 발급 받았기에 이제 Cafe24 내에 있는 모든 API를 사용할 수 있다.
그중 Front API를 사용하기 위한 스크립트 태그를 쇼핑몰에 심어볼 것이다.

공식문서에 있는 양식 중 필요한 부분만 정리하면 아래와 같다.
(display_location 등의 내용은 공식문서를 참고하길 바란다.)
public void addScript(AccessToken token) {
    try {
        MediaType mediaType = MediaType.parse("");
        RequestBody body = RequestBody.create(mediaType, "{\n" +
                "    \"shop_no\": " + "** SHOP NO **" + ",\n" +
                "    \"request\": {\n" +
                "        \"src\": \"" + "스크립트 위치 URL" + "\",\n" +
                "        \"display_location\": [\"MAIN\"],\n" +
                "        \"skin_no\": " + "** SKIN NO **" + ",\n" +
                "        \"integrity\": \"" + "** 무결성 검증 코드 **" + "\"\n" +
                "    }\n" +
                "}");
        Request request = new Request.Builder()
                .url("https://" + token.getMall_id() + ".cafe24api.com/api/v2/admin/scripttags")
                .addHeader("Authorization", "Bearer " + token.getAccess_token())
                .addHeader("Content-Type", "application/json")
                .post(body)
                .build();

        OkHttpClient client = new OkHttpClient();
        Response response = client.newCall(request).execute();
        System.out.println("addScript = " + response.body().string() + "\n");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

 

위에 코드를 보면, 다른 부분들은 다 이전에 갖고 있는 정보인데 새로운 정보들이 몇 개 있다.

SHOP NO, SKIN NO, 무결성 검증 코드 이렇게 3가지이다.
(무결성 검증 코드 생성은 여기를 참고하면 된다.)

SHOP NO는 스크립트 태그를 심을 쇼핑몰의 번호,
SKIN NO는 스크립트 태그를 심을 쇼핑몰이 사용할 스킨의 번호이다.

이 두 정보는 스킨에 대한 정보만 조회해보면 된다. [스킨 조회 관련 공식문서]
(스킨 정보를 조회하기 위해서는 토큰 발급 시 '디자인 읽기권한(mall.read_design)'을 추가해야 한다.)
public void getSkinNo(AccessToken token) {
    try {
        Request request = new Request.Builder()
                .url("https://" + token.getMall_id() + ".cafe24api.com/api/v2/admin/themes?type=pc")
                .addHeader("Authorization", "Bearer " + token.getAccess_token())
                .addHeader("Content-Type", "application/json")
                .get()
                .build();

        OkHttpClient client = new OkHttpClient();
        Response response = client.newCall(request).execute();
        System.out.println("getSkinNo : " + response.body().string() + "\n");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

 

위의 코드를 실행하면 아래와 같이 skin에 대한 정보가 json 형태로 받아지게 되며, skin_no와 skin_name으로 해당 skin을 식별할 수 있다.

published_in 값은 해당 스킨을 사용 중인 쇼핑몰의 NO이다. 사용 중이 아니라면 unpublished로 나온다.
(published_in의 값으로 해당 쇼핑몰의 NO를 더 쉽게 찾을 수 있다.)

Cafe24 내 쇼핑몰에 있는 skin 조회

 

이제 스크립트 태그를 추가하는 코드에 SHOP NO, SKIN NO, 무결성 검증 코드를 추가한 뒤 실행하면 된다.
Controller 코드는 아래와 같다. 
@PostMapping("auth")
public void auth(HttpServletRequest request) {
    String mallId = request.getParameter("mall_id");
    Auth auth = new Auth(request.getParameter("code"));

    AccessToken token = getAccessToken(mallId, auth);

    scriptService.getSkinNo(token); // skin 정보 조회
    scriptService.addScript(token); // 스크립트 태그 추가
}

Cafe24 쇼핑몰에 스크립트 태그 추가


- 참고자료

 

REST API Documentation - CAFE24 REST API

payment_method 적립금 결제방법 naverpay : 네이버페이 smilepay : 스마일페이 kakaopay : 카카오페이 payco : 페이코 paynow : 페이나우 kpay : 케이페이 icash : 가상계좌 결제 deposit : 예치금 결제 tcash : 실시간 계

developers.cafe24.com


728x90
'▣ Tools/API🎯' 카테고리의 다른 글
  • [API] Cafe24, 호출건수 제한, 요청건수 제한의 의미 [카페24 API 호출건수 40회, 요청건수 1회의 뜻]
  • [API] Cafe24, 쇼핑몰 로그인 여부 확인하기 [카페24 Front API를 활용한 로그인 여부 확인]
  • [API] Cafe24, OAuth 인증 과정 구현하기(3) [카페24 쇼핑몰 앱 엑세스 토큰 발급 받기]
  • [API] Cafe24, localhost에서 테스트 하는 방법 [카페24 쇼핑몰 앱 로컬환경 테스트 방법]
예르미(yermi)
예르미(yermi)
끊임없이 제 자신을 계발하는 개발자입니다👨🏻‍💻
  • 예르미(yermi)
    예르미의 코딩노트
    예르미(yermi)
  • 전체
    오늘
    어제
    • 분류 전체보기 (937)
      • ◎ Java (133)
        • Java☕ (93)
        • JSP📋 (26)
        • Applet🧳 (6)
        • Interview👨🏻‍🏫 (8)
      • ◎ JavaScript (48)
        • JavaScript🦎 (25)
        • jQuery🌊 (8)
        • React🌐 (2)
        • Vue.js🔰 (6)
        • Node.js🫒 (3)
        • Google App Script🐑 (4)
      • ◎ HTML5+CSS3 (17)
        • HTML5📝 (8)
        • CSS3🎨 (9)
      • ──────────── (0)
      • ▣ Framework (67)
        • Spring🍃 (36)
        • Spring Boot🍀 (12)
        • Bootstrap💜 (3)
        • Selenium🌕 (6)
        • MyBatis🐣 (10)
      • ▣ Tools (47)
        • API🎯 (18)
        • Library🎲 (15)
        • JitPack🚀 (3)
        • Jenkins👨🏻 (7)
        • Thymeleaf🌿 (4)
      • ▣ Server (32)
        • Apache Tomcat🐱 (14)
        • Apache HTTP Server🛡️ (1)
        • Nginx🧶 (7)
        • OracleXE💿 (4)
        • VisualSVN📡 (4)
      • ▣ OS : 운영체제 (18)
        • cmd : 명령프롬프트💻 (10)
        • Linux🐧 (8)
      • ▣ SQL : Database (56)
        • Oracle SQL🏮 (26)
        • PL SQL💾 (9)
        • MySQL🐬 (6)
        • MariaDB🦦 (6)
        • H2 Database🔠 (3)
        • SQL 실전문제🐌 (6)
      • ────────── (0)
      • ◈ Human Project (86)
        • Mini : Library Service📚 (15)
        • 화면 설계 [HTML]🐯 (10)
        • 서버 프로그램 구현🦁 (15)
        • Team : 여수어때🛫 (19)
        • Custom : Student🏫 (9)
        • Custom : Board📖 (18)
      • ◈ Yermi Project (40)
        • 조사모아(Josa-moa)📬 (5)
        • Riddle-Game🧩 (6)
        • 맛있을 지도🍚 (2)
        • 어디 가! 박대리!🙋🏻‍♂️ (5)
        • 조크베어🐻‍❄️ (4)
        • Looks Like Thirty🦉 (2)
        • Toy Project💎 (12)
        • 오픈소스 파헤치기🪐 (4)
      • ◈ Refactoring (15)
        • Mini : Library Service📚 (8)
        • 서버 프로그램 구현🦁 (1)
        • Team : 여수어때🛫 (0)
        • 쿼리 튜닝일지🔧 (6)
      • ◈ Coding Test (89)
        • 백준(BOJ)👨🏻‍💻 (70)
        • 프로그래머스😎 (2)
        • 코드트리🌳 (7)
        • 알고리즘(Algorithm)🎡 (10)
      • ◈ Study (102)
        • 기초튼튼 개발지식🥔 (25)
        • HTTP 웹 지식💡 (4)
        • 클린코드(Clean Code)🩺 (1)
        • 디자인패턴(GoF)🥞 (12)
        • 다이어그램(Diagram)📈 (4)
        • 파이썬(Python)🐍 (16)
        • 에러노트(Error Note)🧱 (34)
        • 웹 보안(Web Security)🔐 (6)
      • ◈ 공부모임 (39)
        • 혼공학습단⏰ (18)
        • 코드트리 챌린지👊🏻 (2)
        • 개발도서 100독👟 (8)
        • 나는 리뷰어다🌾 (11)
      • ◈ 자격증 공부 (37)
        • 정보처리기사🔱 (16)
        • 정보처리산업기사🔅 (9)
        • 컴퓨터활용능력 1급📼 (12)
      • ─────────── (0)
      • ◐ 기타 (113)
        • 알아두면 좋은 팁(tip)✨ (46)
        • 개발자의 일상🎈 (44)
        • 개발도서 서평🔍 (10)
        • 개발관련 세미나🎤 (2)
        • 블로그 꾸미기🎀 (9)
        • 사도신경 프로젝트🎚️ (2)
  • 인기 글

  • 최근 댓글

  • 태그

    javascript
    Oracle
    jsp
    백준 티어
    Java
    spring
    SQL
    자바스크립트
    CSS
    Database
    BOJ
    코딩
    프로그래밍
    html
    백준
    코딩 테스트
    Project
    꿀팁
    Error Note
    일상
  • 250x250
  • hELLO· Designed By정상우.v4.10.3
예르미(yermi)
[API] Cafe24, 쇼핑몰에 스크립트 태그 심기 [스크립트 추가할 쇼핑몰 번호와 스킨 번호 알아내기]
상단으로

티스토리툴바