1편에서 쿠팡 api를 어떻게 얻었는지랑, 어떻게 활용할지에 대해 간단하게 나열해보았다, 이제 나열한 내용을 기술적으로 구현가능한지 테스트 해보자.
고민거리
쿠팡 파트너스의 경우 새로 생성한 링크는 24시간만 유지되고 그 이후로는 비활성화되는 문제가 있다.
더욱이 만일 해당 제품이 아예 단종되서 제품 페이지에서 내려갔을 경우도 고려를 해봐야 한다.
즉, 계속해서 업데이트를 진행해야 하는데 Python코드와(Java를 써도 된다.) 구글 시트, 쿠팡 파트너스 API를 사용하면 될것 같은데.....
전체 프로세스
쿠팡 파트너스 API로 불러온 1) URL이 현재 판매중인 제품인지 검증하고, 2) "내 파트너스 URL"로 변경하고 그걸 3) 구글시트에 업로드하는 코드를 작성해달라고 하자.
1) 일단 쿠팡 파트너스 API가 제대로 동작하는지 테스트 해보자!
아래는 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 문서에서 제공하는 일반 링크를 회원 링크로 변환하는 코드를 보자.
뭔 소린지 모르겠다, 대충 필요한건 2개일 것이다. (Auth 키 / 변환할 제품 URL)
ChatGPT에게 어떻게 해야 하는지 물어보자!!
Wrtn.AI에서는 ChatGPT4.0를 무료로 제공한다!
,,,, 그렇다, 애초에 예시 코드가 단축 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편에 이어서.......
'아 부업하고 싶다~' 카테고리의 다른 글
[Adobe Stock]최초 수입 발생!! (1) | 2024.07.10 |
---|---|
[Midjourney] Subscription required error 발생 + Midjourney 대체 (1) | 2024.01.03 |
[버스/걸음 앱테크]버스 승하차 / 걸음 횟수 만큼 토큰 주는 Neibug(네이버스) 소개 - 친구초대 코드 포함 (0) | 2023.11.24 |
[Toss] 토스애즈와 쿠팡 파트너스(광고비 3000원 할인받기) (4) | 2023.11.14 |
[부업이 하고 싶어졌다] 도전기-1 (아이템 찾기) (0) | 2023.04.06 |