본문 바로가기
카테고리 없음

[쿠팡 API 발급 완료]쿠팡 API + 코랩 + ChatGPT 이벤트 목록 자동으로 가져오기 - 3

by Mr.noobiest 2023. 12. 23.

 

1편 - API발급 전체 프로세스 구성 내용

 

 

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

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

mrnoobiest.tistory.com

 

2편 - API발급 전체 프로세스 구성 내용

 

API 테스트 및 Python 코드 / ChatGPT / 24시간 업데이트 내용

 

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

[쿠팡 API 발급 완료]쿠팡 API + chatGPT + web으로 객관적인 1등 제품 가져오기 프로젝트 -1 아 드디어 API Get 쿠팡 파트너스를 효율적으로 활용하기 위해서는 반드시 쿠팡 파트너스 API가 필요하다. 문

mrnoobiest.tistory.com

 


 

 

연말이라 업무가 줄어야 하는데, 오히려 늘어나고 있다...........

원래는 3편에서 노코드 Web(Soft.app)을 사용해서 바로 원하는 코드를 하려고 했지만........... 리프레쉬 하기 위해

API에는 없는 새로운 코드를 만들어서 쿠팡 이벤트 목록을 가져오고 자동으로 티스토리로 업로딩 되도록 코드를 작성해보자

 

이벤트 목록을 가져와서 이쁘게 만들어주는 기능을 같이 구현해보자.
(이 방법을 사용하면 쿠팡 파트너스 뿐만 아니라 API가 있을 경우 다른 모든 네트워크의 동작을 구현할 수 있다<- 토큰만 있으면 된다.)

 


 

 

기능 설명

 

1) 이미지처럼 이벤트 이미지 / 타이틀 / 설명문을 기본으로 하고,

2) 가장 최신 이벤트 부터 순서대로 배열한다.

3) 추가로 이벤트 기간이 3일정도 남지 않았을때 빨간색 테두리가 반짝이도록 설정해 놨다.

 

원하는 스타일

위 스타일을 적용한 간단한 예시 게시글 ↓

 

[쿠팡 / Coupang] 쿠팡 이벤트 진행중, 이벤트 모음 / 12월 21일자 최신 버전

이벤트 이미지를 누르면 자동으로 이벤트 페이지로 이동합니다. 광고 차단시 이미지가 표시되지 않을 수 있습니다. 반려동물용품, 크리스마스 준비 (~12/26) 반려동물용품, 크리스마스 준비 로켓

mrnoobiest.tistory.com

 


 

 

이벤트 목록 가져오는 코드 만들기

 

도와줘요 ChatGPT!!!

 

간단하군 Access Key와 Secret Key가 있다면 API 사용이 가능하다.

아래 코드를 사용해라 인간.

import time
import jwt
import requests

accessKey = 'YOUR_ACCESS_KEY'
secretKey = 'YOUR_SECRET_KEY'

def generate_token():
    payload = {
        'access_key': accessKey,
        'timestamp': int(time.time() * 1000),
    }
    token = jwt.encode(payload, secretKey, algorithm='HS256')
    return token

def post_event(json_data):
    headers = {
        'Authorization': 'Bearer ' + generate_token(),
        'Content-Type': 'application/json',
    }
    response = requests.post('https://partners.coupang.com/api/v1/events', headers=headers, json=json_data)
    return response.json()

# json_data의 값을 적절히 설정하세요.
json_data = {
    'page': {
        'pageNumber': 0,
        'size': 120,
    },
}
response = post_event(json_data)
print(response)

 

찬양 하십시오 휴먼

 


 

{'timestamp': '2023-12-22T', 'status': 401, 'error': 'Unauthorized', 'path': '/api/v1/events'}

안돼잖아

 

 

위 코드를 사용했지만 위와 같이 401 에러가 발생 했다.

401 에러 원인 : HTTP(하이퍼텍스트 전송 프로토콜) 401 Unauthorized 응답 상태 코드는 요청된 리소스에 대한 유효한 인증 자격 증명이 없기 때문에 클라이언트 요청이 완료되지 않았음을 나타냅니다.

 


 

??? 하지만 Access Key와 Secret Key는 제대로 동작 중인데,, 무엇이 문제일까??

이럴때는 chatGPT에게 해결해달라기 보다는....

 

"네트워크가 동작할때(=사용자가 서버에게 request를 할때) 꼭 있어야 하는 요소"가 무엇인지를 알아보자

 

 


 

쿠팡 파트너스에서 사용자(유저)가 원하는 정보를 전달 받을때 과정

 

토큰 확인

 

위와 같은 방법으로 이벤트 목록을 아래 처럼 받을 수 있고 events이라는 이름의 XHR이 위 대화 내용의 과정을 코드화 한것 입니다.

events의 response를 받아서 좌측 웹페이지에 띄운것이다.


 

네트워크 명령을 XHR을 Python 코드로 바꾸는 방법

 

1) 개발자 도구 -> 네트워크 -> 필터 (XHR) 을 하면 아래와 같이 네크워크 명령을 볼 수 있습니다.

events -> copy -> Copy as cURL (bash)로 복사합니다.

Copy as cURL (bash)

 


 

2) https://curlconverter.com/python/ 해당 사이트로 가서 코드를 붙여넣어준다.

 

Convert curl commands to Python

GitHub is matching all contributions to this project on GitHub Sponsors. Contribute Now

curlconverter.com

curl Python


 

3) 그럼 명령어를 실행하기 위한 필요요소들(cookie, headers, json)을 확인할 수 있다.

response = requests.post('https://partners.coupang.com/api/v1/events', cookies=cookies, headers=headers, json=json_data)

 

1.  cookies : 웹사이트에 로그인하거나 개인화된 페이지를 보기 위해 필요한 인증 정보나 사용자의 선호 설정 등을 저장하는데 사용됩니다. 서버는 이 쿠키 정보를 통해 사용자를 식별하거나, 사용자의 이전 활동 정보를 확인할 수 있습니다.


2. headers : HTTP 헤더는 서버와 클라이언트가 요청이나 응답을 보낼 때 함께 보내는 정보의 일부입니다. 이 헤더 정보는 요청 또는 응답의 본문(body)과는 별도로 보내지며, 보통 요청이나 응답의 성격을 설명하는데 사용됩니다. 예를 들어, 어떤 형식의 데이터를 보내거나 받는지, 인증 정보가 있는지 등을 표시합니다.

3. json : 이 인자는 POST 요청의 본문에 넣을 JSON 데이터를 지정합니다. 이 데이터는 서버에 보내고자 하는 실제 정보를 포함하고 있습니다.

 

이들을 분리해서 넣는 이유는, 서버에 보내는 요청을 최대한 명확하게 표현하기 위함이며, 각각의 정보가 다른 역할을 하기 때문에, 이들을 구분하여 넣음으로써 코드의 가독성을 높이고, 에러 발생 시 디버깅을 용이하게 한다.

 

너무 길어져서 4편에 이어서 작성하겠다!

728x90
반응형