카카오톡 API 나에게 메세지 보내기
앞서 단기 기술적 지표로 수익이 단기 매매의 가능성을 확인해보았다.
그럼 이제 실시간으로 어떤 종목이 기준 지표를 돌파하는지 감지를 해야 하는데
내가 하나하나 지켜볼 수 없기 때문에 돌파하는 종목을 카카오톡으로 메세지를 보내 알려주려 한다.
카카오톡 API를 사용하기 위해선 카카오톡 개발자에 가입해야 한다.
간략히 순서를 말하자면
application 생성 - rest api 값 확인 - 카카오 로그인 설정 및 메세지 보내기 허용 - code 값 확인 - 인증 token 발급이다.
하나하나 보면서 진행해보자.
우선 카카오 developers 가입
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
내 애플리케이션 클릭 후 애플리케이션 추가하기
REST API 키 확인
동의항목 - 카카오톡 메세지 전송 - 설정
동의로 변경
플랫폼 - Web 플래폼 등록 - 사이트 도메인 입력
일단 www.google.co.kr 이든 www.naver.com 이든 입력
카카오 로그인 - 활성화 설정 - ON으로 변경
아래쪽 Redirect URI 입력
https://kauth.kakao.com/oauth/authorize?client_id=자신의 REST 키값&redirect_uri=REDIRECT로 설정했던값&response_type=code
제대로 입력했다면 해당 화면이 뜨는데 그럼 code값 부분 복사한다.
이제 python으로 카카오톡을 사용하기 위한 준비는 되었다.
import requests
import json
# 카카오톡 메시지 API
url = "https://kauth.kakao.com/oauth/token"
data = {
"grant_type" : "authorization_code",
"client_id" : "REST API 키",
"redirect_url" : "등록한 redirect_url",
"code" : "복사한 code값",
}
response = requests.post(url, data=data)
tokens = response.json()
print(tokens)
저장한 키값과 code값을 이용해 토큰을 발행한다.
밑줄 친 부분을 수정하면 된다.
# kakao_code.json 파일 저장
with open("kakao_code.json", "w") as fp:
json.dump(tokens, fp)
# kakao_code.json 파일 불러오기
with open("kakao_code.json", "r") as fp:
tokens = json.load(fp)
# 토큰 재발행
def refreshToken(refresh_token):
REST_API_KEY = "본인의 REST_API_KEY"
REDIRECT_URI = "본인의 REDIRECT_URI"
data = {
"grant_type": "refresh_token",
"client_id":f"{REST_API_KEY}",
"refresh_token": refresh_token
}
resp = requests.post(REDIRECT_URI , data=data)
print(resp)
new_token = resp.json()
return new_token['access_token']
카카오톡 API 토큰은 사용기간이 짧기 때문에 주기적으로 재발행해주어야 한다.
재발행을 위한 코드는 위의 함수로 구현하였다.
재발행 함수도 밑줄 친 부분을 수정하면 된다.
# 메세지 보내기
url = "https://kapi.kakao.com/v2/api/talk/memo/default/send"
headers = {
"Authorization": "Bearer " + tokens["access_token"]
}
# 보내고자 하는 data 입력
data = {"template_object" : json.dumps({ "object_type" : "text",
"text" : "매수사인"+"\n" +
"매수종목 : " + "삼성전자 " ,
"link" : None })
}
response = requests.post(url, headers=headers, data=data)
# 메세지 전송
if response.json().get('result_code') == 0:
print('메시지를 성공적으로 보냈습니다.')
else:
print('메시지를 성공적으로 보내지 못했습니다. 오류메시지 : ' + str(response.json()))
tokens["access_token"] = refreshToken(tokens["refresh_token"])
headers = {"Authorization": "Bearer " + tokens["access_token"]}
# 메세지가 전송이 안되면 토큰의 기한이 다 되었다는 뜻이기 때문에 재발행을 받은 후 headers의 tokens값을 경신해준다.
이렇게 하면 카카오톡으로 메세지 보내기를 할 수 있다.
단점은 소리로 알람이 따로 오지 않는다는 점이다.
이렇게 카카오톡 API로 나에게 알림 메세지를 주는 것까지 구현하였다.
다음부터는 실시간으로 감지해 보내는 글을 작성하겠다.
'개발일지 > 주식 단타 전략' 카테고리의 다른 글
6. 주식 단타 전략 모니터링 시스템 - 파이썬 자동 감지 프로그램(2) (0) | 2022.10.25 |
---|---|
5. 주식 단타 전략 모니터링 시스템 - 파이썬 자동 감지 프로그램(1) (0) | 2022.10.25 |
3. 주식 단타 전략 모니터링 시스템 - 단기 기술적 지표 백테스팅 (0) | 2022.10.19 |
2. 주식 단타 전략 모니터링 시스템 - 매수 기준 감지 (2) | 2022.10.19 |
1. 주식 단타 전략 모니터링 시스템 - 파이썬 주식 가격 조회 (0) | 2022.10.19 |
댓글