(Flask + ngrok 환경 / 개인용 PC / VSCode 실행 기준)
1. 사전 준비
- Python 3.10 이상 설치
- Flask 설치: pip install flask
- ngrok 설치 및 회원가입 https://ngrok.com/download
- ngrok 설치 경로 예시: C:\\python_project\\ngrok-v3-stable-windows-amd64
2. 네이버 개발자센터에서 애플리케이션 등록
- https://developers.naver.com 접속
- 내 애플리케이션 > 애플리케이션 등록
필수 항목 설정 | 항목 내용 예시 |
앱 이름 | my-naver-test-app |
사용 API | 네이버 로그인 |
서비스 URL | 나중에 ngrok 주소로 대체 예정 |
Callback URL | 예: https://xxxx.ngrok-free.app/naver/callback |
3. Flask 콜백 서버 코드 작성 (naver_callback.py)
import os
import json
import requests
from flask import Flask, request, redirect
from dotenv import load_dotenv
# .env 파일 불러오기
load_dotenv()
app = Flask(__name__)
NAVER_CLIENT_ID = os.getenv("NAVER_CLIENT_ID")
NAVER_CLIENT_SECRET = os.getenv("NAVER_CLIENT_SECRET")
CALLBACK_URL = os.getenv("CALLBACK_URL")
@app.route("/")
def index():
return "NAVER API 연동 준비 완료!"
@app.route("/login")
def login():
state = "random_state_string" # CSRF 방지용 임의 문자열
login_url = (
f"https://nid.naver.com/oauth2.0/authorize?"
f"response_type=code&client_id={NAVER_CLIENT_ID}&"
f"redirect_uri={CALLBACK_URL}&state={state}"
)
return redirect(login_url)
@app.route("/callback")
def callback():
code = request.args.get("code")
state = request.args.get("state")
# 네이버 서버에 access_token 요청
token_url = "https://nid.naver.com/oauth2.0/token"
params = {
"grant_type": "authorization_code",
"client_id": NAVER_CLIENT_ID,
"client_secret": NAVER_CLIENT_SECRET,
"code": code,
"state": state
}
response = requests.get(token_url, params=params)
token_data = response.json()
# access_token과 refresh_token 추출
access_token = token_data.get("access_token")
refresh_token = token_data.get("refresh_token")
# token.json 파일로 저장
with open("token.json", "w") as f:
json.dump({
"access_token": access_token,
"refresh_token": refresh_token
}, f)
return "토큰이 token.json에 저장되었습니다."
if __name__ == "__main__":
app.run(port=5000, debug=True)
VSCode에서 실행:
python naver_callback.py
4. ngrok 인증 토큰 등록 (최초 1회만)
CMD에서 아래 명령 실행:
ngrok config add-authtoken <당신의_토큰>
https://dashboard.ngrok.com/get-started/setup/windows 에서 토큰 확인 가능 > 왼쪽 사이드바 위쪽에서 Your Authtoken
5. ngrok 수동 실행으로 콜백 주소 확보
- ngrok.exe가 있는 폴더로 이동 (예: C:\\python_project\\ngrok-v3-stable-windows-amd64)
- 해당 폴더 경로주소창에서 경로 지우고,cmd 입력 후 프롬프트를 열어요. 또는 아래와 같은 방법도 있어요.
*명령 프롬프트 실행 방법: 윈도우키+R > cmd > 경로이동 [ cd C:\\python_project\\ngrok-v3-stable-windows-amd64]
- 경로를 확인한 후 아래와 같은 명령 실행:
ngrok http 8000
- 출력된 주소 확인:
Forwarding <https://6618-118-32-218-14.ngrok-free.app> ->
- 콜백 주소 구성:
<https://6618-118-32-218-14.ngrok-free.app/naver/callback>
6. 네이버 개발자센터에 콜백 주소 등록
경로: 네이버개발자센터 > Application > 애플리케이션 등록 (API 이용신청)
- Callback URL에 위 주소 등록
- /naver/callback 경로를 꼭 포함해야 함
7. 테스트 완료 확인
- 브라우저에서 콜백 주소 접속 시도
<https://xxxx.ngrok-free.app/naver/callback?code=testcode&state=teststate>
- VSCode 터미널에 출력:
[성공] 인증 코드: testcode, 상태: teststate
'마케터 실무도구 > Python 마케팅을 위한 파이썬 도구' 카테고리의 다른 글
네이버 API 연동 방법 (2-1단계) (0) | 2025.05.01 |
---|---|
네이버 API 연동 방법 (2-2단계) (0) | 2025.05.01 |
파이썬으로 여러 웹페이지 글자수 분석하고 엑셀로 저장하는 방법 (0) | 2025.04.29 |
11. Python 파일 생성 + 코드 추가 + 엑셀 저장 흐름 한눈에 보기 (0) | 2025.04.27 |
10. Python 엑셀 데이터 다루기: 정렬한 키워드를 엑셀 파일로 새로 저장하는 방법 (0) | 2025.04.27 |