사용자 토큰을 발급받지 않으신 분은 반드시 1편을 수행해주세요!
www.novice-engineers.tistory.com/9?category=908185
1. 메시지 이동
위 슬라이드 쇼를 참고해주세요.
1. 문서 클릭
2. 스크롤을 조금 내린 후 [메시지 박스 안에 있는 REST API 클릭]
3. [Ctrl + F]를 누른 후 Request를 입력
4. URL이란 박스 안에 아래와 같은 코드를 확인하실 수 있습니다.
POST/v2/api/talk/memo/default/send HTTP/1.1
Host: kapi.kakao.com
Authorization: Bearer {ACCESS_TOKEN}
=> https://kapi.kakao.com/v2/api/talk/memo/default/send 이러한 주소가 됩니다.
2. Visual Studio Code에 코드 입력 & 실행
import requests
import json
#1.
with open(r"C:\Users\user\Desktop\PythonWorkspace\kakao_test\kakao_code.json","r") as fp:
tokens = json.load(fp)
#2.
with open("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
이전 1강에서 사용한 with open에 따라 #1. 또는 #2. 중 하나만 선택하여 사용하시면 됩니다.
(오류 나시는 분들은 하단에 에러들 참고해서 코드를 수정해보세요!)
실행 후 자신의 카카오톡을 확인해주세요!
이렇게 메시지가 온 것을 확인하실 수 있습니다.
※ 간략한 코드 설명
headers={
"Authorization" : "Bearer " + tokens["access_token"]
}
# "Bearer"이라는 문자열과 json에서 불러온 access_token의 value를 조합하여 인증키를 만든다.
data={
"template_object": json.dumps({
"object_type":"text",
"text":"Hello, world!",
"link":{
"web_url":"www.naver.com"
}
})
}
# object_type은 text 고정값
# text에는 내용
# link는 필수사항이라서 그냥 네이버를 넣어줬습니다.
아래 링크를 참조하시면 이해하시는데 도움될 것 같습니다!
www.developers.kakao.com/docs/latest/ko/message/message-template#text
response = requests.post(url, headers=headers, data=data)
response.status_code
# 위 2줄의 코드가 메시지를 보내는 과정입니다.
※ 추가 (scop error)
print(response.status_code)
if response.json().get('result_code') == 0:
print('메시지를 성공적으로 보냈습니다.')
else:
print('메시지를 성공적으로 보내지 못했습니다. 오류메시지 : ' + str(response.json()))
위에서 scop error 나시는 분은 어플리케이션 생성 하실때 동의 항목에서 설정하시고 토큰 받으시면 됩니다.
공유해 주신 김대성님 정말 감사합니다! :)
※ 추가 (403 error)
메시지를 성공적으로 보내지 못했습니다. 오류메시지 : {'msg': 'insufficient scopes.', 'code': -402, 'api_type': 'TALK_MEMO_DEFAULT_SEND', 'required_scopes': ['talk_message'], 'allowed_scopes': ['profile_nickname']} |
'3. 동의항목'을 참고로해도 동일 메시지를 받아서 하단 코드를
https://kauth.kakao.com/oauth/authorize?client_id={client_id}&redirect_uri=https://example.com/oauth&response_type=code |
아래와 같이 수정하니 추가 동의하고 성공했습니다.
https://kauth.kakao.com/oauth/authorize?client_id={client_id}&redirect_uri=https://example.com/oauth&response_type=code&scope=profile_nickname,friends,talk_message |
※ 추가 (401 error)
headers={ 'Authorization': 'Bearer' + tokens['access_token'] } 상단의 코드를 아래와 같이 수정 headers={ 'Authorization': 'Bearer' + ' ' + tokens['access_token'] } |
오류 및 해결 방법을 공유해 주신 분들 정말로 감사드립니다!
'카카오 API' 카테고리의 다른 글
[Python] 10분 만에 카카오톡 메시지 보내기 친구편 - (2. 메시지 보내기) (43) | 2021.01.04 |
---|---|
[Python] 10분 만에 카카오톡 메시지 보내기 친구편 - (1. 설정 & 사용자 토큰 발급) (25) | 2020.12.31 |
[Python] 10분 만에 카카오톡 메시지 보내기 - (3. 동의 항목) (0) | 2020.12.30 |
[Python] 10분 만에 카카오톡 메시지 보내기 - (1. 사용자 토큰 발급) (13) | 2020.12.29 |
※ 간단하게 REST API란? (0) | 2020.12.29 |