프로그래밍/Python

파이썬으로 네이버 스마트스토어 커머스API 활용하기 - 인증 토큰 발급

abfc 2022. 11. 25.
반응형

 

2022.11.25 - [프로그래밍/Python] - 파이썬으로 네이버 스마트스토어 커머스API 활용하기 - 애플리케이션아이디, 시크릿키 발급

 

파이썬으로 네이버 스마트스토어 커머스API 활용하기 - 애플리케이션아이디, 시크릿키 발급

네이버쇼핑에서 판매중인 인스타봇이나 스마트스토어 상품정보/ 사업자정보 프로그램은 구매자에게 쿠폰을 발급하고 인증하는 시스템이다. 물리적인 배송을 하지않고, 구매자의 정보에서 네

private.tistory.com

 

위와같이 애플리케이션 아이디와 시크릿 키를 발급 받았으면 이제 진짜 연동 시작이다. 아이디와 키 발급만 간단했지 인증 토큰 발급부터 막혔다; ㅎ

 

아직 베타버전이라 그런지 찾아봐도 자료가 별로 없길래 포스팅중....

 

 

 

인증 토큰 발급 요청에 필요한 파라미터

 

인증 토큰 발급 응답값

200을 응답받아야 내가 원하는 토큰을 받을 수 있다.

 

인증 토큰 발급 소스

import requests
import bcrypt
import pybase64
import time
import urllib.request
import urllib.parse

def get_token(client_id, client_secret, type_="SELF") -> str:
    timestamp = str(int((time.time()-3) * 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')

    headers = {"content-type": "application/x-www-form-urlencoded"}
    data_ = {
        "client_id": client_id,
        "timestamp": timestamp,
        "client_secret_sign": client_secret_sign,
        "grant_type": "client_credentials",
        "type": type_
    }

    query = urllib.parse.urlencode(data_)
    url = 'https://api.commerce.naver.com/external/v1/oauth2/token?' + query
    res = requests.post(url=url, headers=headers)
    res_data = res.json()

    while True:
        if 'access_token' in res_data:
            token = res_data['access_token']
            return token
        else:
            print(f'[{res_data}] 토큰 요청 실패')
            time.sleep(1)

token = get_token(client_id='애플리케이션아이디', client_secret='애플리케이션시크릿')
print(f'발급된 토큰 : ', token)

 

3초전 타임스탬프와 client_id(애플리케이션 아이디)를 연결해 패스워드를 생성해주고, client_id와 client_secret를 해싱한 후 인코딩한다.

토큰 발급은 POST 방식이다. get과 post 방식의 차이는 아래에 있다.

2016.09.28 - [용어정리] - Post 와 Get의 차이

 

Post 와 Get의 차이

get은 가져오는 것(select) post는 수행하는 것(insert, update, delete) Post - Form 태그에서 action을 통해 데이터를 전송 - post 방식은 파일의 형태로 전송됨으로 url상에 나타나지 않아 보안성이 있음 - id나 pa

private.tistory.com

 

 

 

아무튼 저 소스로 200응답을 받을 수 있다. 물론 client_id(애플리케이션아이디)와 client_secret(애플리케이션시크릿)을 정상적으로 발급받고 입력했을 때

발급받은 커머스API 인증 토큰

인증 토큰 유효시간은 3시간(10,008초)이고, 재발급을 요청했을때 남은 유효 시간이 30분 이상이면 기존 인증 토큰이 반환되고 30분 미만이면 새로운 인증 토큰이 발급된다. 또한, 새로운 인증 토큰이 발급되었어도 유효 시간 만료전까지는 기존 인증 토큰을 사용할 수 있다.

 

이제 정말 새로운 주문 내역을 API로 받아볼 수 있다.

 

 

공감과 댓글은 작성자에게 많은 힘이됩니다. 감사합니다😄

반응형

댓글

💲 추천 글