티스토리 뷰
안녕하세요 종백이 입니다😎
지난번에 python으로 네이버 커머스 api를 이용했었는데요!
오늘은 flutter로 구현해 보기로 하겠습니다 ㅎㅎ 지난번 python 내용이 궁금하신 분은 아래 링크 클릭 부탁드려요!
>>python 네이버 커머스 api 글 바로가기!<<
네이버 커머스 API 는 인증 토큰을 발급받아 헤더에 넣음으로써 사용자확인을 진행하므로 토큰 받는 방법에 대해 작성해 보겠습니다!
인증 토큰을 발급받기 위해서는 위 파라미터들이 필요한데요! client_id 는 네이버 커머스 api에서 애플리케이션을 등록하시면 인증키를 받을 수 있습니다.
여기서 주의깊게 보실 부분은 client_secret_sign입니다!
client_secret 또한 네이버 커머스 api에 애플리케이션 등록하면 발급을 받는데 그것을 전자서명 생성 방법을 통해 변환을 해주셔야 합니다.
전자서명 생성 방법 예제는 아래와 같습니다!
import bcrypt
import pybase64
clientId = "aaaabbbbcccc"
clientSecret = "$2a$10$abcdefghijklmnopqrstuv"
timestamp = 1643961623299
# 밑줄로 연결하여 password 생성
password = clientId + "_" + str(timestamp)
# bcrypt 해싱
hashed = bcrypt.hashpw(password.encode('utf-8'), clientSecret.encode('utf-8'))
# base64 인코딩
client_secret_sign = pybase64.standard_b64encode(hashed).decode('utf-8')
예시는 자바, 파이썬, Node.js 3개가 나와있는데 그중 파이썬 예시를 갖고 왔습니다. 이거를 dart 방식으로 바꿔서 client_secret_sign에 넣으면 토큰을 발급받을 수 있습니다 ㅎㅎ
위 파이썬 예제를 dart로 바꾼다면 bcrypt 모듈과 pybase64 모듈만 교체해 주면 되겠죠?! dart에서는 bcrypt 모듈 대신 BCrypt 패키지를 이용하고 pybase64 대신에는 convert 모듈에 base64를 통해 인코딩을 해줄 수 있습니다.
dart 코드는 아래와 같습니다.
import 'package:bcrypt/bcrypt.dart';
import 'dart:convert' as convert;
int timestamp = (DateTime.now().millisecondsSinceEpoch) - 1000;
String password = "${applicationID}_${timestamp}";
String hased = BCrypt.hashpw(password, applicationSecret);
String auth = convert.base64.encode(convert.utf8.encode(hased));
위 python 코드는 bcrypt 부분에 utf-8로 인코딩하여 값을 넣었는데 dart에서는 인코딩할 필요 없이 문자열 상태 그대로 넣어줘서 아주 편했습니다 ㅎㅎ dart에는 바이트 타입이 없었어서 어떻게 넣어줘야 하나 한참 고민하다 그냥 문자열 넣으니깐 문제없이 돌아가서 매우 당황했네요 ㅎㅎ
위 auth 값을 토큰 파라미터에 차근차근 넣으면 인증토큰을 얻을 수 있고 아래와 같이 헤더를 구성해서 다른 api 항목을 모두 이용할 수 있습니다!!
Map<String, String> headers = {
'Authorization': "Bearer ${token}",
'content-type': "application/json"
};
flutter에서 네이버 커머스 API 이용하는 내용을 작성해 보았습니다 ㅎㅎ 내용이 도움이 되셨다면 좋아요 부탁드려요^^
'독학 > flutter' 카테고리의 다른 글
[flutter + python]처음해보는 풀스택 fullstack 네이버 상위노출 키워드 프로그램 개발 (6) | 2022.10.30 |
---|---|
스마트스토어 상위노출 : 카테고리 매칭 연관 키워드 프로그램 만들기 (15) | 2022.06.12 |
- Total
- Today
- Yesterday
- 경매동향
- CNC업그레이드
- 상위노출프로그램
- 주식분석
- selenium
- 주식독학
- 인플레이션
- 프로그래밍독학
- 웹앱독학
- javascript
- 책리뷰
- 수부지추천
- 주식시장거품
- 파이썬독학
- 그림독학
- 경매참고자료
- 자바스크립트독학
- javascript독학
- 제로이드
- 책추천
- GRBL
- 브리타정수기
- flutter네이버커머스api
- JS독학
- 파이썬실전
- 주식종목
- 눈시림없는선크림
- 네이버커머스api
- 파이썬
- 파이썬셀레니움
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |