본문 바로가기
개발자, 코딩

쿠팡 파트너스 API 기본[베스트 상품별 정보 가져오기]

by The Career 2024. 1. 17.
반응형

쿠팡 파트너스 활동 중 API로 베스트 상품을 가져올 수 있는 부분이 있어서 파이썬 배치를 위해 간단하게 예제 코드를 작성했습니다.

 

import hmac
import hashlib
import requests
from time import gmtime, strftime

# 문자열 정제 함수
def clearStr(str):
    return str.replace(" ", "").replace(",", "").replace("원", "").replace("\n", "").replace("%", "")

# HMAC 서명 생성 함수
def generateHmac(method, url, secretKey, accessKey):
    path = url.split("?")[0]
    query = url.split("?")[1:]
    datetimeGMT = strftime('%y%m%d', gmtime()) + 'T' + strftime('%H%M%S', gmtime()) + 'Z'
    message = datetimeGMT + method + path + (query[0] if query else "")

    signature = hmac.new(bytes(secretKey, "utf-8"),
                         message.encode("utf-8"),
                         hashlib.sha256).hexdigest()

    return "CEA algorithm=HmacSHA256, access-key={}, signed-date={}, signature={}".format(accessKey, datetimeGMT, signature)

# 카테고리 ID와 이름 매핑
categories = {
    1001: '여성패션',
    1002: '남성패션',
    1010: '뷰티',
    1011: '출산/유아동',
    1012: '식품',
    1013: '주방용품',
    1014: '생활용품',
    1015: '홈인테리어',
    1016: '가전디지털',
    1017: '스포츠/레저',
    1018: '자동차용품',
    1019: '도서/음반/DVD',
    1020: '완구/취미',
    1021: '문구/오피스',
    1024: '헬스/건강식품',
    1025: '국내여행',
    1026: '해외여행',
    1029: '반려동물용품',
    1030: '유아동패션'
}

coupang_item_limit = 1 # 한번에 가져올 개수(카테고리별)
sub_id = "" # 쿠팡 채널 id

ACCESS_KEY = ""
SECRET_KEY = ""

# 모든 카테고리에 대해 반복
for key, value in categories.items():
    coupang_category_id = key

    REQUEST_METHOD = "GET"
    DOMAIN = "https://api-gateway.coupang.com"
    URL = "/v2/providers/affiliate_open_api/apis/openapi/v1/products/bestcategories/" + str(coupang_category_id) + '?limit=' + str(coupang_item_limit) + '&subId=' + sub_id

    # HMAC 서명 생성
    authorization = generateHmac(REQUEST_METHOD, URL, SECRET_KEY, ACCESS_KEY)
    url = "{}{}".format(DOMAIN, URL)
    response = requests.request(method=REQUEST_METHOD, url=url,
                                headers={
                                    "Authorization": authorization,
                                    "Content-Type": "application/json"
                                }
                            )

    # API 응답 데이터 파싱
    data = response.json()

    # 상품 정보 출력
    for item in data['data']:
        productId = item['productId']
        productName = item['productName']
        productPrice = item['productPrice']
        productImage = item['productImage']
        productUrl = item['productUrl']
        # 여기에서 상품 정보를 활용하여 원하는 작업을 수행할 수 있습니다.
  1. generateHmac 함수는 HMAC 서명을 생성합니다. 요청 메서드, URL, 비밀키, 액세스 키를 입력받아 서명을 생성하고 반환합니다.
  2. categories 변수는 카테고리 ID 이름을 매핑한 딕셔너리입니다.
  3. coupang_item_limit 변수는 번에 가져올 상품의 개수를 제한하는 변수입니다.
  4. sub_id, ACCESS_KEY, SECRET_KEY 쿠팡 API 사용하기 위해 필요한 인증 정보입니다.
  5. for 루프를 사용하여 모든 카테고리에 대해 API 요청을 보냅니다.
  6. generateHmac 함수를 사용하여 HMAC 서명을 생성하고, 요청을 보내고 응답을 받습니다.
  7. 응답 데이터를 파싱하여 상품 정보를 추출하고 원하는 작업을 수행할 있습니다.

반응형