반응형
요 근래 말이 많은 텔레그램입니다. 원격지 컴퓨터에 명령 실행할 방법을 찾다가, 메신저를 통해서 실행해 보자는 아이디어 차원에서 한번 챗봇을 보게 되었는데, 파이썬 + 텔레그램 봇 구성이 생각보다 쉬워 공유를 해봅니다.
telepot 모듈 설치
pip install telepot --upgrade
소스 샘플
import telepot
from telepot.loop import MessageLoop
import time
TOKEN_MAIN = 'BOT_TOKEN'
StartMsg = """
BOT 기본 명령어
1. /help : 도움말
2. 안녕
"""
# 특정 명령어가 입력할 때 반응
def execcommand(message, chat_id):
args = message.split(' ')
command = args[0]
del args[0]
if command == '/help':
send(chat_id, StartMsg)
# 메시지를 그대로 전송
def echoserver(message, chat_id, target):
args = message.split(' ')
command = args[0]
if command == '안녕':
send(chat_id, '안녕하세요~ %s 님!' % target['username'])
# 메시지 텔레그램으로 전송
def send(chat_id, message):
bot.sendMessage(chat_id, message)
def handler(msg):
content_type, chat_type, chat_id, msg_date, msg_id = telepot.glance(msg, long=True)
print(msg)
if content_type == 'text':
_message = msg['text']
if _message[0:1] == '/': # 명령어
execcommand(_message, chat_id)
else:
echoserver(_message, chat_id, msg['from'])
bot = telepot.Bot(TOKEN_MAIN)
bot.message_loop(handler, run_forever=True)
버그 리포트
#1. ssl 접속 오류
urllib3 버전 이슈로 보입니다. 1.25 이상 버전에서 자체 서명된 인증서(self signed cert) 인 경우, SSL 인증서를 무시하는 부분을 거절하네요. 그래서 urllib3 버전을 강제로 다운그레이드 합니다.
# urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.telegram.org', port=443):
pip install urllib3==1.24.3
참조 URL
https://telepot.readthedocs.io/en/latest/
반응형