[Python] 슬랙(Slack) 알림봇 설정하여 매일 증시 알림 받기 (3) - 2
프로젝트/[ed]_슬랙봇_증시알림

[Python] 슬랙(Slack) 알림봇 설정하여 매일 증시 알림 받기 (3) - 2

728x90
반응형

지난번에 이어, 이번엔 앞선 포스팅에서 만든 함수((3) - 1)를 slack 알림봇에 적용하는 걸 해보겠습니다.

완성된 함수 KospiRead() 를 뒤로 하고, 슬랙봇에게 메시지를 보내는 파일로 돌아옵니다.

잘 모르시겠다면 아래의 포스팅 참고해주세요.

2021.09.22 - [프로젝트] - [Python] 슬랙(Slack) 알림봇 설정하여 매일 증시 알림 받기 (2)

 

[Python] 슬랙(Slack) 알림봇 설정하여 매일 증시 알림 받기 (2)

지난편에 이어서, 이번엔 파이썬을 활용하여 슬랙봇이 채팅을 보내는 걸 해보겠습니다. 2021년 2월 이후로 파이썬의 Slacker 라이브러리를 사용할 수 없습니다. (∵ SLACK 의 정책변경) 따라서, 다른

dragon1-honey1-wayfarer.tistory.com


완성된 코드는 아래와 같습니다.
KospiRead() 함수에서 필요한 값을 불러와 일부 편집하여 코스피 지수값, 매매동향을 자동으로 불러올 수 있게끔 합니다.
지난번 포스팅에서 일부 코드를 수정하였습니다. 코드는 길어보이지만 주로 필요한 문자열 가공이므로 어렵지 않을 것입니다.

# requests 와 json 을 활용하여 slack bot 조작하기
from Slacker_notice_functions import * 
import requests 
import json 
from datetime import datetime 

# 메시지를 보내는 부분. 함수 안 argument 순서 : 
# token : Slack Bot의 토큰 
# channel : 메시지를 보낼 채널 
#stock_notice 
# text : Slack Bot 이 보낼 텍스트 메시지. 마크다운 형식이 지원된다. 
# attachments : 첨부파일. 텍스트 이외에 이미지등을 첨부할 수 있다. 

def notice_message(token, channel, text, attachments): 
	attachments = json.dumps(attachments) # 리스트는 Json 으로 덤핑 시켜야 Slack한테 제대로 간다.
	response = requests.post("https://slack.com/api/chat.postMessage", 
	headers={"Authorization": "Bearer "+token}, 
		data={"channel": channel, "text": text ,
        "attachments": attachments}) 

Token = 'xoxb-' # 자신의 Token 입력 
image, trend, today_value = KospiRead() # KospiRead 함수로 이미지 주소, 매매동향, 코스피 지수값 불러오기 

# 요일구분을 위한 딕셔너리 생성 
weekdays_dict = { 
	0 : '월',
    1 : '화', 
    2 : '수', 
    3 : '목', 
    4 : '금', 
    5 : '토', 
    6 : '일' }

today_date = datetime.today().strftime('%Y-%m-%d') # YYYY-MM-DD 형식으로 날짜표시
weekdays = datetime.weekday(datetime.today()) # 오늘이 무슨요일인지 0 ~ 6 의 숫자로 표현
str1_title = 'KOSPI, ' + today_date + ' (' + weekdays_dict[weekdays] + ')' # str1_title 은 'KOSPI, 2021-09-24 (금)' 과 같은 형식으로 표시된다.
buySell = '개인 : ' + trend[0] + ', 외국인 : ' + trend[1] + ', 기관 : ' + trend[2] + '\n'
programBuySell = '차익 : ' + trend[3] + ', 비차익 : ' + trend[4] + ', 총합 : ' + trend[5] + '\n' 
kospi_value = today_value[0] + today_value[1] + '\n' # 3,135.24 ▽2.34 -0.07% 형식으로 표시 

total_text = kospi_value + buySell + programBuySell 
# total_text 는 3,135.24 ▽2.34 -0.07% 
# 개인: + 2483, 외국인: +835, 기관: -3419 
# 차익: -15, 비차익: -1105, 총합 : -1120 
# 형식으로 표시된다. 

# attachment 왼쪽 기둥 색상 정하기 : KOSPI 지수가 올라가면 빨강, 내려가면 파랑 
if today_value[1].find('+') != -1: # + 인 경우,
	today_color = '#ff0000' # 빨강색 
else: 
	today_color = '#0000ff' # 파랑색

attach_dict = { 'color' : today_color, 
				'author_name' : '오늘의 증시 알림', 
                'title' : str1_title, 
                'title_link' : 'http://finance.naver.com/sise/sise_index.nhn?code=KOSPI',
                'text' : total_text, 
                'image_url' : image } 
                
attach_list=[attach_dict]
notice_message(Token, "#stock_notice", str1_title, attach_list)


몇가지 색상 코드 :
빨강 : #ff0000 / 초록 : #00ff00 / 파랑 : #0000ff
노랑 : #ffff00 / 하양 : #ffffff / 검정 : #000000

참고로 색상표에 대해 더 자세히 알고 싶으시다면 아래의 사이트 참조하세요.

https://librewiki.net/wiki/%EC%83%89%EC%83%81_%EC%BD%94%EB%93%9C

 

색상 코드

색상 코드(Color code)는 개체의 색깔을 표기하기 위해 만들어진 디지털 코드다. 컴퓨터 프로그래밍 및 HTML 등에서 사용되며, 표기하는 방식에는 크게 세 가지가 있다. 인쇄물에는 CMYK나 팬톤을 사

librewiki.net


위의 코드를 실행시키면 슬랙봇이 아래의 빨강박스 안과 같은 알림메시지를 보내는 걸 확인 할 수 있습니다.

증시알림 해주는 슬랙봇


주석을 따라 천천히 보시고 궁금하신거 있으시면 댓글 부탁드립니다.

728x90
반응형