파이썬 개발 공유
(네이버 커머스 api) 액세스 인증 토큰 생성 샘플 코드 - python
happyrichman
2022. 11. 2. 15:45
공홈에는 bcrypt 해싱을 사용한 전자성명 예제만 있고,
인증토큰 발급 요청 예제가 없어서 공유합니다.
version : python 3.7.9
import urllib.request
import urllib.parse
import bcrypt
import pybase64
import time
import requests
def get_bearer_token(client_id, clientSecret, type_="SELF"):
# 3초전 timestamp
timestamp = str(int((time.time()-3) * 1000))
# 밑줄로 연결하여 password 생성
password = client_id + "_" + timestamp
# bcrypt 해싱
hashed = bcrypt.hashpw(password.encode('utf-8'), clientSecret.encode('utf-8'))
# base64 인코딩
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_)
oauth_url = 'https://api.commerce.naver.com/external/v1/oauth2/token?' + query
response = requests.post(url=oauth_url, headers=headers)
response_data = response.json()
if 'access_token' in response_data:
return response_data['access_token']
else:
print(response_data)
print("토큰 요청 실패, 재시도")
time.sleep(1)
return get_bearer_token(client_id, clientSecret, type_)
참조 : https://apicenter.commerce.naver.com/ko/basic/commerce-api
반응형