2022.11.25 - [프로그래밍/Python] - 파이썬으로 네이버 스마트스토어 커머스API 활용하기 - 애플리케이션아이디, 시크릿키 발급
위와같이 애플리케이션 아이디와 시크릿 키를 발급 받았으면 이제 진짜 연동 시작이다. 아이디와 키 발급만 간단했지 인증 토큰 발급부터 막혔다; ㅎ
아직 베타버전이라 그런지 찾아봐도 자료가 별로 없길래 포스팅중....
인증 토큰 발급 요청에 필요한 파라미터
인증 토큰 발급 응답값
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의 차이
아무튼 저 소스로 200응답을 받을 수 있다. 물론 client_id(애플리케이션아이디)와 client_secret(애플리케이션시크릿)을 정상적으로 발급받고 입력했을 때
인증 토큰 유효시간은 3시간(10,008초)이고, 재발급을 요청했을때 남은 유효 시간이 30분 이상이면 기존 인증 토큰이 반환되고 30분 미만이면 새로운 인증 토큰이 발급된다. 또한, 새로운 인증 토큰이 발급되었어도 유효 시간 만료전까지는 기존 인증 토큰을 사용할 수 있다.
이제 정말 새로운 주문 내역을 API로 받아볼 수 있다.
공감과 댓글은 작성자에게 많은 힘이됩니다. 감사합니다😄
'프로그래밍 > Python' 카테고리의 다른 글
파이썬으로 네이버 스마트스토어 커머스API 활용하기 - 주문 내역 상세 정보 조회, 발송 처리 (10) | 2022.12.06 |
---|---|
파이썬으로 네이버 스마트스토어 커머스API 활용하기 - 주문 조회 (6) | 2022.12.05 |
파이썬으로 네이버 스마트스토어 커머스API 활용하기 - 애플리케이션아이디, 시크릿키 발급 (0) | 2022.11.25 |
파이썬 selenium chrome창이 갑자기 닫힐때 (2) | 2022.10.09 |
파이썬 셀레니움(selenium) 모바일 버전(화면)으로 접속하기 (1) | 2022.01.04 |
댓글