안녕하세요 이번 글에선 카카오톡 알림 설정을 진행해보겠습니다.
에러 발생시 카카오에서 제공하는 rest api를 이용하여 zabbix에 등록한 파이썬 스크립트를 돌려 자신의 카카오톡으로 알람이 오도록 구성을 하였는데 해당 파이썬 스크립트를 짜는것이 저같은 새내기한텐 어려워서..회사 선배의 도움을 받았습니다ㅎㅎ
Kakao api 설정
카카오 developers : https://developers.kakao.com/
■ kakao developers 회원가입
상단의 내애플리케이션 클릭
■ 애플리케이션 추가
■ 앱 키 저장
■ 활성화 설정
■ 동의 설정
내 애플리케이션 -> 동의항목 -> 카카오스토리 프로필 URL 필수동의/ 카카오톡 메시지 전송 선택 동의
■ Redirect URL 등록
나중에 수정 가능(처음 테스트로는 https://example.com/oauth 로 진행)
■ 상단의 문서 -> REST API 클릭
■ 스크롤 내리다보면 Request 부분에 URL 코드 확인가능
GET /oauth/authorize?client_id={REST_API_KEY}&redirect_uri={REDIRECT_URI}&response_type=code HTTP/1.1
Host: kauth.kakao.com
=> https://kauth.kakao.com/oauth/authorize?client_id={REST_API_KEY}&redirect_uri={REDIRECT_URI}&response_type=code 이러한 주소가 됩니다.
{REDIRECT_URI}에 5번의 Redirect URI를 넣어주기 (https://example.com/oauth)
■ 완성된 주소를 인터넷 주소창에 입력
■ 정상 화면
■ 파이썬 설치 (zabbix server)
[root@localhost Zabbix-in-Telegram]# yum -y install python3
■ 토큰 입력
import requests
url = 'https://kauth.kakao.com/oauth/token'
rest_api_key = '자신의 REST API 키'
redirect_uri = 'https://example.com/oauth'
authorize_code = '-7sSp7Xxqw2QAew7-rctWJtZT4ycERTzQM_nylg8bX0OxFcgGegkA9jaVvPLEVOX_FrkxQo9dRoAAAF2qFCIsA 코드 입력'
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"C:\Users\user\Desktop\PythonWorkspace\kakao_test\kakao_code.json","w") as fp:
## find / -name kakao_code.json 으로 해당 경로 찾아서 입력
json.dump(tokens, fp)
#2.with open("kakao_code.json","w") as fp:
json.dump(tokens, fp)
위 코드 마지막 with 부분에서 디렉토리 경로에 익숙하신 분은 #1. 에서 자신의 디렉토리 경로를 입력해주시고 디렉토리 경로가 익숙하지 않으신 분은 #2. 를 입력해 주세요.
반드시 #1. 과 #2. 둘 중 하나만 입력!
[root@localhost ~]# vi jh.py
import requests
url = 'https://kauth.kakao.com/oauth/token'
rest_api_key = '216bbebb1f7dd0755bfac177d321d8c8'
redirect_uri = 'https://example.com/oauth'
authorize_code = 'glVI29snV5wsw-mZgSlfp_WvDAmpKYI0oX7Jxel_SwvzYWRzOD72QWXKsoLbGkoMhjvZNAopcFEAAAF9-qEpGg'
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
with open(r"/root/kakao_code.json","w") as fp:
json.dump(tokens, fp)
## 해당 파이썬 파일을 돌리려면 requests 라는 모듈이 필요하다. 설치진행
[root@localhost ~]# pip3 install requests
## 해당 파일 돌리면 access_token, token_type, refresh_token등 입력 된다.
[root@localhost ~]# python3 jh.py
{'access_token': 'lL6-A45-VIGM8VAGIb8N5dFsxlMM0r0ot1UPawo9dGkAAAF9-sim7A', 'token_type': 'bearer', 'refresh_token': 'OgOdeIvu68LsGpiC2XlyODnTbN9-ScojkacPuQo9dGkAAAF9-sim6w', 'expires_in': 21599, 'refresh_token_expires_in': 5183999}
■ 저장한 json 파일 읽어 오기
#import requests
#url = 'https://kauth.kakao.com/oauth/token'
#rest_api_key = '216bbebb1f7dd0755bfac177d321d8c8'
#redirect_uri = 'https://example.com/oauth'
#authorize_code = '6lMU31XpHhca5dgEuxieFGJlBTeAQYUtOMtA5ptOrmJkv7DQttWkSynSsQaVH_H8hS7kcwo9c-sAAAF9-se-tA'
#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
with open(r"/root/kakao_code.json","r") as fp:
ts = json.load(fp)
print(ts)
print(ts["access_token"])
[root@localhost ~]# python3 jh.py
{'access_token': 'lL6-A45-VIGM8VAGIb8N5dFsxlMM0r0ot1UPawo9dGkAAAF9-sim7A', 'token_type': 'bearer', 'refresh_token': 'OgOdeIvu68LsGpiC2XlyODnTbN9-ScojkacPuQo9dGkAAAF9-sim6w', 'expires_in': 21599, 'refresh_token_expires_in': 5183999}
lL6-A45-VIGM8VAGIb8N5dFsxlMM0r0ot1UPawo9dGkAAAF9-sim7A
카카오톡 메시지 보내기
■ 문서 -> REST API 클릭
■ 스크롤 내리다보면 URL이란 항목에 아래와 같은 코드 확인 가능
POST/v2/api/talk/memo/default/send HTTP/1.1
=> https://kapi.kakao.com/v2/api/talk/memo/default/send 이러한 주소가 됩니다.
■ 카카오톡으로 전송하는 파이썬 파일 작성
[root@localhost ~]# vi jh2.py
import requests
import json
with open(r"/root/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":"성공적! GoodGood!!!",
"link":{
"web_url":"www.naver.com"
}
})
}
response = requests.post(url, headers=headers, data=data)
response.status_code
## 실행
[root@localhost ~]# python3 jh2.py
■ 실행 화면
참고
'Others > DB Monitoring' 카테고리의 다른 글
[ PMM - DB monitoring 서버 구축 ] (0) | 2022.02.24 |
---|---|
[ Zabbix - 카카오톡 얼롯팅 설정 ] part 5-2 최종 (9) | 2022.02.12 |
[ Zabbix - Telegram 연동 & PDF report생성 ] part 4 (0) | 2022.02.07 |
[ Zabbix - email 얼롯팅 설정 ] part 3 (0) | 2022.02.07 |
[ Zabbix - zabbix 수집 구성 ] part 2 (0) | 2022.02.07 |