사용자 토큰을 발급받지 않으신 분은 반드시 친구 1편을 수행해주세요!
www.novice-engineers.tistory.com/13
1. 카카오톡 소셜 REST API 확인
위 슬라이드 쇼를 참고해 주세요.
1. 상단 메뉴에서 문서 클릭
2. [Ctrl + F] 누른 후 '카카오톡 소셜' 입력
3. [카카오톡 소셜 박스 안에 있는 REST API 클릭]
4. 왼쪽 메뉴바에서 '친구 목록 가져오기' 클릭
5. 스크롤 밑으로 내린 후 URL 확인
GET /v1/api/talk/friends HTTP/1.1
Host: kapi.kakao.com
Authorization: Bearer {ACCESS_TOKEN}
=> https://kapi.kakao.com/v1/api/talk/friends 이러한 주소가 됩니다.
2. 친구 목록 가져오기
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)
# print(tokens)
# print(tokens["access_token"])
friend_url = "https://kapi.kakao.com/v1/api/talk/friends"
# GET /v1/api/talk/friends HTTP/1.1
# Host: kapi.kakao.com
# Authorization: Bearer {ACCESS_TOKEN}
headers={"Authorization" : "Bearer " + tokens["access_token"]}
result = json.loads(requests.get(friend_url, headers=headers).text)
print(type(result))
print("=============================================")
print(result)
print("=============================================")
friends_list = result.get("elements")
print(friends_list)
# print(type(friends_list))
print("=============================================")
print(friends_list[0].get("uuid"))
friend_id = friends_list[0].get("uuid")
print(friend_id)
위 코드를 그대로 Visual Studio Code에 입력해 주세요.
디렉토리 여부에 따라 #1. 또는 #2. 중 하나만 선택하여 사용하시면 됩니다.
# 간단한 코드 설명
1번에서 얻은 url을 friend_url에 저장합니다.
headers에 인증 키를 Bearer {ACCESS_TOKEN} 형태로 저장합니다.
응답은 JSON 객체로 받기 때문에 json.loads로 result에 저장합니다. (result는 dictionary 타입입니다.)
print는 값들이 정상적으로 출력되는지 확인하기 위한 코드입니다.
result는 dictionary 형태이기 때문에 필요한 정보가 담긴 elements의 value들을 friends_list에 저장합니다.
이후 메시지에 보낼 때 필요한 값은 uuid라는 값이기 때문에 friend_id에 friends_list[0] 번째에 있는 uuid를 저장합니다.
제가 테스트하는 과정에서는 친구를 1명만 넣기 때문에 friends_list[0]으로 표기했는데 여러 명의 친구에게 테스트하실 때는 for문으로 실행하시면 됩니다.
# 실행 결과
3. 친구에게 메시지 보내기 REST API 확인
위 슬라이드 쇼를 참고해 주세요.
1. 상단 메뉴에서 문서 클릭
2. [Ctrl + F] 누른 후 '메시지' 입력
3. [메시지 박스 안에 있는 REST API 클릭]
4. 왼쪽 메뉴바에서 '친구에게 기본 메시지 보내기' 클릭
5. URL 확인
POST /v1/api/talk/friends/message/default/send HTTP/1.1
Host: kapi.kakao.com
Authorization: Bearer {ACCESS_TOKEN}
=>https://kapi.kakao.com/v1/api/talk/friends/message/default/send 이러한 주소가 됩니다.
4. 친구에게 메시지 보내기
import requests
import json
with open(r"C:\Users\user\Desktop\PythonWorkspace\kakao_test\kakao_code.json","r") as fp:
tokens = json.load(fp)
# print(tokens)
# print(tokens["access_token"])
friend_url = "https://kapi.kakao.com/v1/api/talk/friends"
# GET /v1/api/talk/friends HTTP/1.1
# Host: kapi.kakao.com
# Authorization: Bearer {ACCESS_TOKEN}
headers={"Authorization" : "Bearer " + tokens["access_token"]}
result = json.loads(requests.get(friend_url, headers=headers).text)
print(type(result))
print("=============================================")
print(result)
print("=============================================")
friends_list = result.get("elements")
print(friends_list)
# print(type(friends_list))
print("=============================================")
print(friends_list[0].get("uuid"))
friend_id = friends_list[0].get("uuid")
print(friend_id)
send_url= "https://kapi.kakao.com/v1/api/talk/friends/message/default/send"
data={
'receiver_uuids': '["{}"]'.format(friend_id),
"template_object": json.dumps({
"object_type":"text",
"text":"성공입니다!",
"link":{
"web_url":"www.daum.net",
"web_url":"www.naver.com"
},
"button_title": "바로 확인"
})
}
response = requests.post(send_url, headers=headers, data=data)
response.status_code
위 코드를 전체 복사 후 붙여 넣기 해주세요.
# 간단한 코드 설명
3번에서 얻은 url을 send_url에 저장합니다.
data에 REST API에서 제공하는 텍스트 형태로 저장합니다.
이후 메시지를 보내는 과정입니다.
# 결과
메시지를 확인해 보시면 카카오톡 메시지 보내기 친구편에 성공하셨습니다!
3번에서 스크롤을 밑으로 조금더 내려보시면 Sample이라고 나오는데 피드, 리스트, 위치, 커머스, 텍스트의 형태를 확인 가능합니다.
위 코드에서 data형태를 바꾼다면 텍스트 뿐만 아니라 다양한 메시지를 보내실 수 있습니다!
감사합니다.
'카카오 API' 카테고리의 다른 글
[python] 10분 만에 카카오톡 비전 사용편 - (1-2. 얼굴 검출[저장편]) (0) | 2021.03.08 |
---|---|
[python] 10분 만에 카카오톡 비전 사용편 - (1-1. 얼굴 검출) (0) | 2021.03.05 |
[Python] 10분 만에 카카오톡 메시지 보내기 친구편 - (1. 설정 & 사용자 토큰 발급) (25) | 2020.12.31 |
[Python] 10분 만에 카카오톡 메시지 보내기 - (3. 동의 항목) (0) | 2020.12.30 |
[Python] 10분 만에 카카오톡 메시지 보내기 - (2. 메시지 보내기) (52) | 2020.12.29 |