import requests
import json
import os

print("=" * 50)
print("  카카오 토큰 발급 도우미 v2")
print("=" * 50)

REST_API_KEY = input("\nREST API 키를 붙여넣으세요: ").strip()

print("\n아래 URL을 복사해서 브라우저 주소창에 붙여넣으세요:")
print()
url = f"https://kauth.kakao.com/oauth/authorize?client_id={REST_API_KEY}&redirect_uri=https://example.com&response_type=code&scope=talk_message"
print(url)
print()
print("→ 카카오 로그인 후 '동의하기' 클릭")
print("→ 오류 페이지가 떠도 괜찮아요!")
print("→ 주소창 URL 전체 복사해서 아래에 붙여넣기")
print()

redirect_url = input("URL 붙여넣기: ").strip()

try:
    code = redirect_url.split("code=")[1].split("&")[0]
    print(f"\n✅ 코드 추출 성공!")
except:
    print("\n❌ URL을 다시 확인해주세요.")
    exit()

resp = requests.post(
    "https://kauth.kakao.com/oauth/token",
    data={
        "grant_type": "authorization_code",
        "client_id": REST_API_KEY,
        "redirect_uri": "https://example.com",
        "code": code,
    }
)

if resp.status_code != 200:
    print(f"❌ 실패: {resp.text}")
    exit()

data = resp.json()
token_info = {
    "REST_API_KEY": REST_API_KEY,
    "access_token": data["access_token"],
    "refresh_token": data["refresh_token"],
}

with open("kakao_token.json", "w") as f:
    json.dump(token_info, f, ensure_ascii=False, indent=2)

print("\n✅ 토큰 저장 완료!")

resp2 = requests.post(
    "https://kapi.kakao.com/v2/api/talk/memo/default/send",
    headers={"Authorization": f"Bearer {data['access_token']}"},
    data={"template_object": json.dumps({
        "object_type": "text",
        "text": "✅ 뉴스 알림 봇 설정 완료!",
        "link": {"web_url": "https://naver.com", "mobile_web_url": "https://naver.com"}
    })}
)

if resp2.status_code == 200:
    print("✅ 카카오톡 전송 성공! 메시지 확인해보세요 📱")
else:
    print(f"❌ 전송 실패: {resp2.text}")