본문 바로가기
꿀팁

쿠팡파트너스 가입 및 승인부터 OPEN API 파이썬 블로그 수익까지[1]

by SENE 2020. 4. 6.
반응형

쿠팡 파트너스라는 어필리에이트 제휴마케팅을 알고 있나?

우리나라에서는 아직 많이 서툰 개념으로 생각된다.

하지만 아마존 어필리에이트는 매우 유명하다.

단순하게 생각하면 광고 대행이다.

쿠팡에 올라와있는 아이템을 홍보하면서 링크를 같이 올려두고, 그 링크를 타고 들어가서 구입을 하면 수익의 일부를 받는 시스템이다.

여러분도 한번 해보겠는가?

쿠팡파트너스 API 승인부터

나는 쿠팡 파트너스를 늦게 알게 된 편 인 것 같다.

생각보다 블로그에 글이 매우 많이 올라오고 있었거든.

이건 네이버 블로그에서도 사용 가능하다 보니 매우 많이 사용된다.

가입은 간단하다.

쿠팡 파트너스를 검색하고 들어가서, 가입하면 바로 되거든.

그런데, 최종 승인은 구매 확정 1회 이상 이후 이루어진다.

최종승인을 가장 쉽게 받는 방법은 100원짜리 상품을 이용하는 방법이다.

가평 레저나 모바일 바우처 등을 파트너스 상품페이지에서 검색하면 100원짜리 픽업 이용권이 나온다.

이걸 다른사람 계정으로 대신 구입하는 방법이다.

실제로 테스트 해봤고, 되더라.

OPEN API 를 발급받으면 아래 사진처럼 추가 기능 - 파트너스 API 메뉴가 생긴다.

여기서 ACCESS KEY와 SECRET KEY를 발급받아야 오픈 API를 이용 가능하다.

 

API가 뭘까

솔직히 컴퓨터 관련해서 공부한 사람이 아니면 이걸 알고있는 사람이 있을까?

나도 몰랐다.

난 파이썬이라는 언어도 한번도 안 써봤다.

그래서 오래간만에 공부 좀 했지.

컴퓨터 언어라고는 대학시절 C언어 약간과, 업무를 보면서 사용하는 오토핫키(Autohotkey)가 다인데, 그나마 오토 핫키라도 사용해오다 보니 파이썬 공부할 때 도움이 조금 되더라.

API는 단순히 나처럼 전문가가 아닌 사람 기준으로 볼 때.

내 정보는 이거고, 이러이러한 내용을 주세요~라고 상대방에게 던지면, 알아서 내가 원하는 값을 돌려주는 약속이라고 생각하면 된다.

뭐 설명이 틀릴 수도 있지만, 나는 저렇게 생각한다.

이번 기회에 공부도 할 겸 해서 파이썬을 알아본 거지만, 정말 이 전에는 컴퓨터 언어 몰랐다.

근데 지금은 내가 사용할 만큼은 사용 가능한 듯?

이 글을 읽는 여러분도 이거 공부 한번 해볼 생각으로 왔겠지?

일단 한번 도전해보자

난 시작을 PYTHON으로 했다.

물론 JAVA, PHP, C#, Node.js 등 여러 가지 언어로 API 사용이 가능하다.

내가 굳이 python으로 도전한 건.

어디선가 파이썬이 쉽고 접근하기 좋다고 들었거든.

리눅스에서도 사용 가능하다는 것도 꽤나 좋았다.

내가 가끔 가지고 노는 라즈베리파이가 리눅스 기반이라.

파이썬으로 전부 구성 다 하면 라즈베리파이로 구동 가능하다.

정말로.

 

일단 파이썬을 설치해 보자.

https://www.python.org/

 

Welcome to Python.org

The official home of the Python Programming Language

www.python.org

위 링크로 가서 본인 피씨에 맞는 버전으로 설치하면 된다.

설치가 끝나면 IDLE라는 기본 툴이 제공된다.

이걸로도 충분히 모든 기능 사용 가능하다.

 

IDLE를 열면 Python 3.8.2 Shell이라는 제목을 가진 툴이 열린다.

여기서 File - New File을 눌러준다.(또는 컨트롤+N)

그럼 제목이 없는 창이 생기겠지.

여기에 이제 내용을 넣고, F5 버튼을 누르면 이 창에 기록된 내용이 실행된다.

간단하지?

이제 쿠팡 파트너스 홈페이지에서 내용을 가져와본다.

https://partners.coupang.com/#help/open-api

import hmac
import hashlib
import binascii
import os
import time
import requests
import json


REQUEST_METHOD = "POST"
DOMAIN = "https://api-gateway.coupang.com"
URL = "/v2/providers/affiliate_open_api/apis/openapi/v1/deeplink"

# Replace with your own ACCESS_KEY and SECRET_KEY
ACCESS_KEY = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
SECRET_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

REQUEST = { "coupangUrls": [
    "https://www.coupang.com/np/search?component=&q=good&channel=user", 
    "https://www.coupang.com/np/coupangglobal"
]}


def generateHmac(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)


authorization = generateHmac(REQUEST_METHOD, URL, SECRET_KEY, ACCESS_KEY)
url = "{}{}".format(DOMAIN, URL)
resposne = requests.request(method=REQUEST_METHOD, url=url,
                            headers={
                                "Authorization": authorization,
                                "Content-Type": "application/json"
                            },
                            data=json.dumps(REQUEST)
                            )

print(resposne.json())

위 내용이 기본으로 제공하는 가이드이다.

한번 그대로 복사하고 ACCESS KEY / SECRET KEY를 넣고 실행해보자.

에러 난다.

지금 내 컴퓨터에는 필요한 라이브러리가 전부 설치되어 있어서 다른 에러 없이 바로 에러코드가 뜬다.

라이브러리가 없으면 다른 에러가 뜬다.

이건 다음 포스팅에서 다루도록 하겠다.

이 에러가 뜨는 건 솔직히 나는 못하겠더라.

전혀 컴퓨터 언어를 모르는 상황에서 파이썬을 알고 나서 하루도 안돼서 혼자서 해결하면 당신은 이쪽 계열로 이직을 고려하는 건 어떤가?

난 아니더라.

대신 우리에겐 구글과 네이버, 다음이 있다.

열심히 검색하다 보니 빛이 있더라.

이 내용에 대해서 링크로 감사를 표한다.

https://mingtrace.tistory.com/508

 

파이썬 쿠팡 파트너스 API / HMAC signature ERROR 해결 방법

파이썬 쿠팡 파트너스 API 활용하기 이웃 블로거 까누님의 블로그를 보다가 쿠팡 파트너스 API를 활용하는 것을 알게 되었습니다. 그래서 프로그램을 잘하지는 못 하지만, 프로그램 공부를 할 겸해서 한번 파이썬..

mingtrace.tistory.com

문제는 타임존에서 있다고 하셨다.

우리가 사용하는 시간과 표준시간은 다른 걸 알고 있지?

내 컴퓨터 현재 시간으로 보면, 표준 시간대 부분에 UTC + 09:00 서울이라고 표시되어 있다.

자 여기서 문제는 저 위에 적어둔 식에서 요청하는 시간대가 GMT 시간 / 내 위치의 시간의 차이가 발생하면서 에러가 난 걸로 판단한다.

그리고 저 위 블로그에서는 해답까지 알려주셨지.

자 아래처럼 바꾸고 실행해보자.

def generateHmac(method, url, secretKey, accessKey):
    path, *query = url.split("?")
    dateGMT = strftime('%y%m%d',gmtime())
    timeGMT = strftime('%H%M%S',gmtime())
    datetime = dateGMT + 'T' + timeGMT + '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)

 

 

에러 난다.

왤까?

밑에 NameError : name 'strftime' is not defined라고 친절하게 적혀있다.

time 라이브러리 안에 있는 strftime이라는 함수를 쓰는 건데, 바로 저 내용이 들어가서 안되더라.

다시 아래처럼 바꿔보자.(time 라이브러리는 최 상단에서 import time으로 들어가 있음)

def generateHmac(method, url, secretKey, accessKey):
    path, *query = url.split("?")
    dateGMT = time.strftime('%y%m%d',time.gmtime())
    timeGMT = time.strftime('%H%M%S',time.gmtime())
    datetime = dateGMT + 'T' + timeGMT + '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)

자 결과는?

이제 잘된다.

이게 기본이다.

일단 최소한 이 화면은 보고 시작하자.

다음 포스팅에서 계속 이어서 하겠다.

마지막에는 내 처참한 수익도 살짝 공개하는 게 낫겠지.

 

반응형