개발/Python
파이썬의 스케줄러를 사용하여 주기적으로 API 값 텔레그램으로 메시지 보내기
핫펍co
2018. 8. 24. 18:54
우선 선행 작업이 필요 합니다. 아래 링크로 선행 작업을 완료 합니다.
1. python 설치, telegram bot 설정
2. import 할 것들 install 하기
pip install json
pip install schedule
pip install time
pip install request
선행 작업이 완료 되었다면 아래와 같이 코딩된 파이썬 파일(telegram.py)을 생성합니다.
비트맥스의(https://www.bitmex.com) API 중 XBTUSD 값을 1분마다 텔레그램으로 보내는 코드 입니다.
(비트맥스가 아닌 다른 거래소도 API 제공하기 때문에 가능합니다. )
API 는 json 으로 보내주기 때문에 json 을 파싱하는 코드도 포함 되어 있습니다.
import urllib.request import json import requests import schedule import time # 반복될 작업을 함수로 정의 def scd(): # API 링크 가져와서 data 변수에 담기 with urllib.request.urlopen("https://www.bitmex.com/api/v1/trade?symbol=XBTUSD&count=1&reverse=true") as url: data = url.read() # json 데이터로 j 변수에 담기 j = json.loads(data) # teleurl 변수에 텔레그램 botfather 한테 받은 자신의 API 넣기 teleurl = "https://api.telegram.org/bot511337000:AAG7gRmT3Ra8FYl22gekgckK_iwVwkJAAAA/sendMessage" # 로그 찍어보기(지워도 됨) print(j[0]["symbol"] + " : " + str(j[0]["price"])) # 챗 id 와 symbol : price 값을 텔레그램에 보내기 params = {'chat_id': '-1001243756825', 'text': j[0]["symbol"] + " : " + str(j[0]["price"])} # 텔레그램으로 메시지 전송 res = requests.get(teleurl, params=params) # 스케쥴 설정 매분마다 실행 schedule.every().minute.do(scd) # while 문을 사용하여 스케쥴러 실행 while 1: schedule.run_pending() time.sleep(60)
작성 완료 하였다면, 해당 파일이 있는 cmd 창을 열어 'python telegram.py' 실행 합니다.
그리고 텔레그램 채널에 메시지가 잘 오는지 확인 합니다.
잘 되시나요?
잘 안되신다면 댓글 달아주세요~~ 감사합니다.
# 파이썬 # python # telegram # 텔레그램