프로그래밍으로 돈을 벌기 시작한건 내 쇼핑몰 때문이였다.
스마트스토어의 상품 노출 로직을 이해하고 있었지만, 상품을 등록하는 작업들이
은근 단순반복 노동에 가까웠다.
자동화 할 수 있는건 다 자동화 하고 싶었던 마음에 프로그램 제작 의뢰를 맡겼지만,
160 만원을 달라고 ......................................
너무 비싸서 도저히 맡길 수 없었다.
그 날 나는 네이버에 크롤링 하기 쉬운 프로그래밍 언어를 검색했고, 파이썬을 추천하길래 바로 파이썬 설치를 했다.
그렇게 프로그램을 만들게 됐고,
원래 상품등록에 12시간 이상 쏟아 부었지만, 이제는 프로그램(우리 회사 직원 ㅎㅎ)이 대신 일을 하기에
내가 직접 관여하는 시간은 1시간도 채 안된다.
하루 11시간을 벌어다 준 프로그램 !!!!!!!!!!!!!!!!!!!
아무튼, 내가 코딩을 하게된 계기인 이 프로그램을 다시 뜯어보면서 블로그에 내용을 공유하려 한다.
우리가 이 글을 통해 구현할 기능들을 소개하겠다.
1. 내 상품 정보 가져오기
2. 상품 수정 / 품절 처리
3. 상품 등록
4. 상위노출 키워드 찾기 (생각해보니 영업비밀!!)
자 바로 시작해보자 !
일단 스마트스토어 프로그램을 만들기 위해서는 당연하게도 스마트스토어에 가입이 되어 있어야 한다.
다만 이 글을 찾아올 정도라면 그 정돈 준비가 됐다고 생각하고 진행해보자 !
모든 API가 그렇듯 토큰을 받아야 정상적으로 사용이 가능한데, 토큰을 받기위해 Client ID, Client Secret가 필요하다.
커머스 API센터에 들어가서 내스토어 애플리케이션에 가면
아래와 같은 항목이 있다.
애플리케이션 ID = Client ID
애플리케이션 시크릿 = Client Secret
pip install pybase64 bcrypt requests
토큰 발행을 위해 필요한 모듈을 설치해주자.
def token():
client_id = '애플리케이션 ID'
client_secret = '애플리케이션 시크릿'
timestamp = str(int((time.time() - 10) * 1000))
pwd = f'{client_id}_{timestamp}'
hashed = bcrypt.hashpw(pwd.encode('utf-8'), client_secret.encode('utf-8'))
client_secret_sign = pybase64.standard_b64encode(hashed).decode('utf-8')
url = "https://api.commerce.naver.com/external/v1/oauth2/token"
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
data = {
'grant_type': 'client_credentials',
'client_id': client_id,
'timestamp': timestamp,
'client_secret_sign': client_secret_sign,
'type': 'SELF'
}
response = requests.post(url, headers=headers, data=data)
response_json = json.loads(response.text)
if 'access_token' in response_json:
return response_json['access_token']
else:
return 0
그 당시 구글링해서 알아낸 토큰 발행 코드이다.
코드를 들여다 보자.
먼저 클라이언트 ID와 시크릿을 설정하고
10초전 시간을 타임스탬프에 넣어둔 후 설정한 ID, 시크릿과 합해서 암호화 시킨다
다시 그걸 requests로 보내버린다 !
응답이 오면 json형식으로 오는데, 그 안에 access_token이라는 값이 있으면 그 값을 반환해주고
없으면 토큰발행에 실패한거라 0을 반환해준다.
tokens = token()
if tokens == 0:
print('토큰 발행 실패')
else:
print(tokens)
토큰이 잘 발급된걸 확인 할 수 있다!
이게 열쇠와 같다고 생각하면 된다. 우린 이제 커머스 API를 전부 활용할 수 있는 마스터키를 손에 쥐었다.
'프로그램 개발일지' 카테고리의 다른 글
[ADB] adb 한글 전송이 안 될때 / 한글 입력이 안 될때 (0) | 2024.06.18 |
---|---|
[Python] 파이썬 블루스택 제어하기 - 1 (2) | 2024.06.15 |
[Python] 셀레니움으로 접속 안 되는 사이트 우회 방법 (1) | 2024.06.14 |
[Python] 네이버 블로그 자동 포스팅 만들기 - 3 / openai api (0) | 2024.06.14 |
[Python] 네이버 블로그 자동 포스팅 만들기 - 2 (0) | 2024.06.14 |