이력

  • 2019.12.30 포스팅
  • 2020.01.01 수정 - API 호출 횟수 설명 추가

안녕하세요.
쿠팡 파트너스 활동을 시작하면서 파이썬으로 쿠팡 파트너스 API,
네이버 블로그 API를 활용하여 포스팅을 자동화 하는 프로그램을 만들었습니다.
API 활용이 어려운건 아니지만 확실한 가이드가 될만한 포스트가 없어서 적어보려고 합니다.
이 포스팅 시리즈가 끝날때면 기본적인 UI를 갖춘 자동화 프로그램을 완성하는 것을 목표로 하고있습니다.

​이번 포스트에서 설명할 내용

  • 쿠팡 파트너스 API 활용전에 알아야 할 것
  • 키워드로 상품내용을 받는 API 사용방법(/products/search)

쿠팡 파트너스 가입하기 전이라면

  • 가입하실 때 추천인 적으면 서로 돌려받는 퍼센트가 1% 올라갑니다. 적으실 만한 분이 없다면 추천인 AF0311637 부탁드립니다 :)

활용 대상

  • 쿠팡 파트너스 최종승인이 된 사람!(최종 승인이 되어야 API를 활용할 수 있는 Key가 발급됩니다)
  • 최종 승인이 되는 조건은 쿠팡 파트너스 활동을 통해서 첫 수익이 발생하면 되는 것인데요. 쉽게 말해서 홍보용 포스트을 올렸는데 어떤 사람이 그 포스트를 보고 쿠팡으로 유입되어 물건을 샀을 때입니다. 본인이 사면 안됩니다. (급하신 분은 주변분에게 부탁해서 물건을 사달라고 하시면 될듯?ㅎㅎ)
  • Key가 발급되기 전까지는 수동으로 작업을 하셔야되요. 익숙해지면 쉽습니다^^

쿠팡 파트너스 API Key 확인

  • 최종 승인이 되면 아래 처럼 추가기능에 파트너스 API 메뉴가 생기고 클릭하면 API Key를 확인할 수 있습니다. API 키 확인

이용가능한 파트너스 API들

  • https://partners.coupang.com/#help/open-api
  • 제공하는 API 들에 대한 문서가 제공되고 있습니다.
  • 저는 키워드로 검색해서 나오는 상위의 제품들을 홍보하고 있기 때문에 /products/search API를 사용합니다. 하나만 어떻게 사용하는지 익히시면 다른 것들은 쉽게 사용하실 수 있을꺼에요. API 문서 API 문서
  • 문서를 통해 호출하는 URL형식과 필수값은 keyword 인것을 확인할 수 있습니다.

참고

  • 사용하면서 알게된 건데 API는 한시간에 10번만 호출할 수 있습니다.

API 사용 흐름

    1. 사용할 API 대상으로 HMAC 생성(파트너스 API Key 사용됨)
    1. API 호출
    1. 결과 확인
  • 쉽죠?. 1번 과정은 정당한 API 사용인지 확인하는거에요.
  • 1번 과정이 없다면 무분별하게 API를 사용하게 되서 API 서비스하는데 어려움이 있겠죠?
  • 1번 과정을 통해 정당한 API 사용임을 입증할 수 있는 값을 받은 다음에 API를 호출하는거에요.
  • 코드로 작성할텐데, 앞으로 포스팅 하면서 조금씩 살을 붙여 나갈꺼에요.
  • 코드를 좀 아시는 분이라면 대충이라도 이해가 될테지만,
  • 지식이 전무하시거나 알 필요도 없으신 분은 그냥 코드복사해서 사용하시면 됩니다. 참고로 파이썬 버전은 v3 입니다.
  • (코드는 기존의 완성된 프로그램[파트너스 api, 네이버 블로그 api, 자동 포스팅]을 편집해서 올리는거라 불필요한 부분이 있을 수도 있지만, 동작테스트는 하고 올리기 때문에 사용하시는데는 문제 없을꺼에요.)

코드

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# coding: utf-8
 
import hmac
import hashlib
import os
import time
import requests
import json
import urllib.request
from selenium import webdriver
import secrets
from urllib.parse import urlencode

__author__ = "Jaejin Jang<jaejin_me@naver.com>"

class cupangMgr:
	DOMAIN = "https://api-gateway.coupang.com"

	def generateHmac(self, method, url, secretKey, accessKey):
		path, *query = url.split("?")
		os.environ["TZ"] = "GMT+0"
		datetime = time.strftime('%y%m%d')+'T'+time.strftime('%H%M%S')+'Z'
		message = datetime + 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, datetime, signature)

	def get_productsdata(self, request_method, authorization, keyword, limit):
		URL = "/v2/providers/affiliate_open_api/apis/openapi/products/search?keyword=" + urllib.parse.quote(keyword) + "&limit=" + str(limit)
		url = "{}{}".format(self.DOMAIN, URL)

		response = requests.request(method=request_method, url=url, headers={ "Authorization": authorization, "Content-Type": "application/json;charset=UTF-8" })
		retdata = json.dumps(response.json(), indent=4).encode('utf-8')
		jsondata = json.loads(retdata)
		data = jsondata['data']
		productdata = data['productData']

		return productdata

if __name__ == '__main__':
	method = 'GET'				 #정보를 얻는것이기 때문에 GET
	keyword = '채워 넣으세요' #검색할 키워드, 쿠팡에서 검색하는거랑 결과가 동일합니다.
	limit = 5					 #몇개의 정보를 가져올지 설정. 상위부터 가져옵니다.
	access_key = '채워 넣으세요'			#API access key
	secret_key = '채워 넣으세요'		#API secret key
	URL = "/v2/providers/affiliate_open_api/apis/openapi/products/search?keyword=" + urllib.parse.quote(keyword) + "&limit=" + str(limit)

	test = cupangMgr()
	authorization = test.generateHmac(method, URL, secret_key, access_key)		# HMAC 생성
	productdata = test.get_productsdata(method, authorization, keyword, limit)	# API 호출
	print(productdata) # 결과 확인

테스트방법 설명

  • 코드의 제일 하단 부분이 테스트하는 코드입니다.
  • 빨간색으로 된 부분을 채워넣고 테스트하시면됩니다.
  • 파란색 부분은 우리가 활용하는 API의 정보입니다.
  • 주황색 부분은 결과출력을 확인하는거에요.
  • 저의 정보를 넣고 테스트해보면 아래와 같이 값이 출력되는 것을 확인할 수 있습니다.
  • 결과를 보면 상품ID, 제목, 가격, 이미지주소, URL, 키워드, 순위, 로켓배송여부​를 확인할 수 있음을 알 수 있습니다. 결과

다음 포스팅에는..

  • 다음 포스팅에는 결과값으로 해당 상품페이지에 접속해서 이미지를 가져오는 내용을 올리겠습니다.
  • 그 다음에는 네이버 블로그 API로 포스팅 하는 방법을 올릴께요~

궁금한 점은 댓글로 달아주시면, 시간될 때 성심성의것 답변해 드리겠습니다.