파이썬

[python] 카카오톡 API를 사용하여, 나에게 카카오톡 메시지 보내기

Heeyeon Choi 2023. 10. 24. 14:03
728x90

1. 카카오 디벨롭스에 상단바의 내 애플리케이션을 클릭하여, 애플리케이션을 추가합니다. 

https://developers.kakao.com/

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

2. 추가한 애플리케이션을 클릭하면, 요약정보에 중요한 REST API 키가 나옵니다.

 

3. 왼쪽바의 동의항목을 클릭하여 다음과 같이 설정해줍니다. 

 

4. 카카오로그인 활성화 & redirect URL 설정하기

- redirect URL : https://example.com/oauth

 

 

5. 카카오 로그인하는 웹사이트에 들어갑니다.

- client_id= 뒤에는 위에서 발급받은 restAPI KEY를 입력합니다.

- scope=  이부분을 작성해주어야 나중에 친구 불러오기도 가능합니다. 

 

<주소>

https://kauth.kakao.com/oauth/authorize?client_id=자신의 restAPI KEY  입력&redirect_uri=https://example.com/oauth&response_type=code&scope=profile_nickname,friends,talk_message

 

 

6. 위에 code= 뒷부분을 저장해줍니다. (인가코드)

7. 토큰을 요청하는 코드를 작성 후 실행해줍니다.

import requests

url = 'https://kauth.kakao.com/oauth/token'
rest_api_key = '411503d9d9ee7b73d3b46fdbb75a3911'
redirect_uri = 'https://example.com/oauth'
authorize_code = '6번에서 받은 인가코드를 작성'

data = {
    'grant_type':'authorization_code',
    'client_id':rest_api_key,
    'redirect_uri':redirect_uri,
    'code': authorize_code,
    }

response = requests.post(url, data=data)
tokens = response.json()
print(tokens)

# json 저장
import json
#1.
with open(r"D:\heeyeon\codes\kakao_code.json","w") as fp:
    json.dump(tokens, fp)

<결과>

 

8. 저장된 json 파일을 읽어서 나에게 카톡메시지를 보내는 코드를 작성합니다.

import requests
import json

#1.
with open(r"D:\heeyeon\codes\kakao_code.json","r") as fp:
    tokens = json.load(fp)


url="https://kapi.kakao.com/v2/api/talk/memo/default/send"

# kapi.kakao.com/v2/api/talk/memo/default/send 

headers={
    "Authorization" : "Bearer " + tokens["access_token"]
}

data={
    "template_object": json.dumps({
        "object_type":"text",
        "text":"Hello, world!",
        "link":{
            "web_url":"www.naver.com"
        }
    })
}

response = requests.post(url, headers=headers, data=data)
response.status_code
print(response.status_code)
if response.json().get('result_code') == 0:
	print('메시지를 성공적으로 보냈습니다.')
else:
	print('메시지를 성공적으로 보내지 못했습니다. 오류메시지 : ' + str(response.json()))

<결과>

끝~

728x90