개발/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 # 텔레그램