본문 바로가기
아 부업하고 싶다~

[쿠팡 API 발급 완료]쿠팡 API + 노코드web으로 객관적인 1등 제품 가져오기 프로젝트 -2 (쿠팡 파트너스 API 바로 사용하기)

by Mr.noobiest 2023. 12. 9.
 

[쿠팡 API 발급 완료]쿠팡 API + chatGPT + web으로 객관적인 1등 제품 가져오기 프로젝트 -1

아 드디어 API Get 쿠팡 파트너스를 효율적으로 활용하기 위해서는 반드시 쿠팡 파트너스 API가 필요하다. 문제는 API를 발급 받기 위해서는 일정금액 이상의 수익을 내야해서 그동안 API를 사용하

mrnoobiest.tistory.com

 

1편에서 쿠팡 api를 어떻게 얻었는지랑, 어떻게 활용할지에 대해 간단하게 나열해보았다, 이제 나열한 내용을 기술적으로 구현가능한지 테스트 해보자.

 


 

고민거리

쿠팡 파트너스의 경우 새로 생성한 링크는 24시간만 유지되고 그 이후로는 비활성화되는 문제가 있다.

더욱이 만일 해당 제품이 아예 단종되서 제품 페이지에서 내려갔을 경우도 고려를 해봐야 한다.

고민된다.

 

즉, 계속해서 업데이트를 진행해야 하는데 Python코드와(Java를 써도 된다.) 구글 시트, 쿠팡 파트너스 API를 사용하면 될것 같은데.....

 


 

전체 프로세스

쿠팡 파트너스 API로 불러온 1) URL이 현재 판매중인 제품인지 검증하고, 2) "내 파트너스 URL"로 변경하고 그걸 3) 구글시트에 업로드하는 코드를 작성해달라고 하자.

좋다, 프로세스를 결정했다.

 


 

1) 일단 쿠팡 파트너스 API가 제대로 동작하는지 테스트 해보자!

 

쿠팡 파트너스 API에서 친절하게 예제문을 알려준다.

 


 

Java / Pyhton / PHP / C# / Node.js

 


 

아래는 Python 예시입니다, ACCESS_KEY와 SECRET_KEY만 바꾸고 실행하면 됩니다.

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

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("?")
    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)


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"
                            },
                            data=json.dumps(REQUEST)
                            )

print(response.json())

 

정상적으로 동작할 경우 response.json()이 아래와 같이 나와야 합니다.

아래처럼 안나온다면 ACCESS_KEY와 SECRET_KEY가 정확한지 다시 확인하십시오.

{'rCode': '0',
 'rMessage': '',
 'data': [{'originalUrl': 'https://www.coupang.com/np/search?component=&q=good&channel=user',
   'shortenUrl': 'https://link.coupang.com/a/xxxxx',
   'landingUrl': 'https://link.coupang.com/re/xxxxx'},
  {'originalUrl': 'https://www.coupang.com/np/coupangglobal',
   'shortenUrl': 'https://link.coupang.com/a/xxxx',
   'landingUrl': 'https://link.coupang.com/re/xxxxx'}]}

 

 


 

 

2) 일반 제품 URL을 파트너스 URL로 변경해보자!!!

 

API 문서에서 제공하는 일반 링크를 회원 링크로 변환하는 코드를 보자.

파트너스 API에서 제공한 가이드

 

....몰?루...

 

뭔 소린지 모르겠다, 대충 필요한건 2개일 것이다. (Auth 키 / 변환할 제품 URL)

ChatGPT에게 어떻게 해야 하는지 물어보자!! 

 


 

Wrtn.AI에서는 ChatGPT4.0를 무료로 제공한다!

 

 

wrtn

모두를 위한 AI 포털 뤼튼. AI 채팅부터 이미지 생성, 나만의 AI 제작까지, 언제 어디서나 생성형 AI와 함께하세요.

wrtn.ai

 

 

멍청하다 휴먼, 애초에 예시 코드가 short url을 생성하는 코드다.

 

,,,, 그렇다, 애초에 예시 코드가 단축 URL을 생성하는 코드였다...

import hmac
import hashlib
import binascii
import os
import time
import requests
import json
import urllib.request
import secrets
from urllib.parse import urlencode
import hmac
import hashlib
import binascii
import os
import time
import requests
import json
from time import gmtime, strftime

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 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
SECRET_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"


REQUEST = { "coupangUrls": ['https://www.coupang.com/vp/products/2303973364'
]
}


def generateHmac(method, url, api_secret_key, api_access_key):
    path, *query = url.split('?')
    os.environ['TZ'] = 'GMT+0'
    dt_datetime = strftime('%y%m%d', gmtime()) + 'T' + strftime('%H%M%S', gmtime()) + 'Z'  # GMT+0
    msg = dt_datetime + method + path + (query[0] if query else '')
    signature = hmac.new(bytes(api_secret_key, 'utf-8'), msg.encode('utf-8'), hashlib.sha256).hexdigest()
 
    return 'CEA algorithm=HmacSHA256, access-key={}, signed-date={}, signature={}'.format(api_access_key, dt_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())

 


 

어차피 제품 URL은 변경되지 않을테고(ex : https://www.coupang.com/vp/products/제품id)

단축URL은 24시간만 사용가능하고 이후로는 만료되므로 새로 생성해야 한다.

그러면! 구글 시트를 사용해서 제품URL과 해당 제품의 단축 URL을 설정하고 코드를 사용해서, 24시간마다 업데이트하는 코드를 작성해보자

 

 

 

3편에 이어서.......

728x90
반응형