카카오톡 api 메시지 전송 python - kakaotog api mesiji jeonsong python

1. 카카오 개발자센터 가입 및 앱 등록 (https://developers.kakao.com/)

이 부분은 다른 블로그 혹은 해당사이트 안내를 따라 쉽게 따라 할 수 있는 부분이라 본 글에서는 PASS !!

2. 개발을 위한 Access Token 발급
    (https://developers.kakao.com/tool/rest-api/open/get/v1-user-access_token_info)

경로 : 도구> REST API 테스트> 토큰 정보 보기

카카오계정 로그인

여기를 눌러 링크를 확인하세요.

accounts.kakao.com

카카오톡 api 메시지 전송 python - kakaotog api mesiji jeonsong python
카카오톡 api 메시지 전송 python - kakaotog api mesiji jeonsong python
경로 : 로그인 > 도구 > REST API 테스트 (바로가기->)
카카오톡 api 메시지 전송 python - kakaotog api mesiji jeonsong python
메시지 : 나에게 메시지 보내기 > 토큰 발급

이 경로를 찾는데 많은 시간을 보냈다. 다른 블로그등을 보면 [내 애플리케이션] 등을 통해 토큰 발급을 받으라고 했지만, 어디에서도 토큰 발급 경로를 찾기 어려웠고, 위 메뉴를 누르다 경로를 확인하게 되었다. 

여기서 기본적으로 제공되는 developers-sample 앱으로 토근 발급 시, 

{"msg":"ip mismatched! callerIp=221.139.xxx.xxx. check out registered ips.","code":-401}

에러가 발생한다. 위의 ip mismatched! callerIp 에러 시 대부분 해결책으로 [내 애플리케이션] > [고급설정] > [허용 IP 주소]를 알려주지만, 이는 다른 앱에서 등록한 토큰을 사용하여 발생한 오류이기 때문에 위 그림처럼 앱을 선택하여, 내가 개발하고 있는 앱을 선택해야 한다. ;;물론 동시에 허용 IP 주소도 등록해줘야 한다. 

정상적으로 토큰 발급 시, 52자리의 String 값을 발급 받을 수 있다. 

3. REST API 사용 방법 확인 (https://developers.kakao.com/docs/latest/ko/message/rest-api)

경로 : 문서>메시지>REST API

카카오톡 api 메시지 전송 python - kakaotog api mesiji jeonsong python

 API 사용방법이 나오며, Sample 코드가지 친절하게 제공하여 준다. 

우선 코드는 curl을 통해 요청하는 POST 구문으로  아래와 같이 제공한다. 

헤더로 Authorization 값으로 "Bearer "뒤에 2번에서 받은 Access Token 을 넣으면 되고, 

나머지 데이터 파라미터는 이대로 전달하면 된다. 

직접 작성한 코드를 공유하면, 

import os
import json
import requests

def sendToMeMessage(text):
    header = {
"Authorization": 'Bearer ' + KAKAO_TOKEN}

    url =

"https://kapi.kakao.com/v2/api/talk/memo/default/send" #나에게 보내기 주소post = {
       
"object_type": "text",
       
"text": text,
       
"link": {
           
"web_url": "https://developers.kakao.com",
           
"mobile_web_url": "https://developers.kakao.com"
       
},
       
"button_title": "바로 확인"
   
}
    data = {
"template_object": json.dumps(post)}
   
return requests.post(url, headers=header, data=data)

text =

"Hello, This is KaKao Message Test!!("+os.path.basename(__file__).replace(".py", ")")

KAKAO_TOKEN =

"TFS_000000000000000000000000000000000000000_sQ" print(sendToMeMessage(text).text)

카카오의 POST 메시지는 template_object 파라미터로 구성한 메시지를 전달해야 하며, 타입은 JSON 으로 보내야 한다.

카카오톡 api 메시지 전송 python - kakaotog api mesiji jeonsong python
JSON Object 타입으로 파라미터 구성

data = {"template_object": json.dumps(post)} 코드는 샘플에서 제공한 메시지 형태로 구성했을 때, json 타입으로 변환하는 코드이며, requests.post 를 통해 메시지를 나에게 전송할 수 있다. 

샘플코드를 활용하면 쉽게 구현할 수 있는 부분이지만, 사소한 실수가 많을 수 있다. 

예를 들어 Authorization 의 값으로 "Bearer 토큰"을 넣어야 하지만, Bearer과 토큰 사이 공백이 없다면, 

아래와 같은 에러가 발생한다. 

{"msg":"access token should not be null or empty","code":-2}


다음 포스팅을 통해서 친구목록 받아오기와 친구에게 메시지 보내기도 함께 남길 예정이다.

[Python] 카카오톡 : 메시지 (2/3 - 친구 목록 가져오기)
https://cocoabba.tistory.com/16?category=439259

[Python] 카카오톡 : 메시지 (2/3 - 친구 목록 가져오기)

1. 팀 관리에 사용자 추가 우선 카카오톡에서 친구에게 메시지를 보내는 방법은 2가지가 있다.  카카오톡 메시지 API 를 이용하는 방법과 카카오링크 API를 이용하는 방법이 있다. (관련 링크:https:

cocoabba.tistory.com

카카오톡 api 메시지 전송 python - kakaotog api mesiji jeonsong python