SW 개발

[python] 텔래그램봇 예제코드

. . . 2017. 12. 15. 18:28
반응형
  • 마크다운변환 : 20191001

텔래그램봇을 이용하여 놀고있다.

간단한 코드를 예제를 올려놓는다.

필요한 모듈

telepot 모듈하나면 텔레그램 봇이 뚝딱!

pip install telepot

간단한 wrapper class

import sys
import os
import telepot
import subprocess
import json
import sched, time

from telepot.delegate import per_chat_id, create_open

from telepot.loop import MessageLoop

class MyTelegram:

    def __init__(self, recv_msg_func):
        self._recv_msg_func = recv_msg_func
        self._bot_token = CONFIG_TELEGRAM_BOT_TOKEN
        self._valid_user = CONFIG_TELEGRAM_MSG_VALID_USER_ID
        self._su_user = CONFIG_TELEGRAM_MSG_SUPER_USER_ID
        #self._svrHelper = SvrHelper()
        #self.bot = telepot.Bot('TOKEN')

        self.bot = telepot.DelegatorBot(self._bot_token, [(per_chat_id(), create_open(SvrHelper, timeout=120)),])

        self.bot.sendMessage(self._su_user, '봇 서비스 시작 합니다 ')

        #self.bot.setWebhook()
        #self.bot.setWebhook()
        MessageLoop(self.bot, recv_msg_func).run_as_thread()

    def sendmsg(self, msg) :
        self.bot.sendMessage(self._su_user, msg)

    def recvmsg_handler_reg(self, func) :
        self.bot.setWebhook()
        MessageLoop(self.bot, func).run_as_thread()

사용방법

def msg_hander(msg) :
    print(msg['text'])

telegram = MyTelegram(msg_hander)

telegram.sendmsg("hello?")

timer_service_hour()
  • msg_handler 부분에 원하는 코드를 넣으면된다.
  • su_user 의 경우 메시지 받고자하는 사용자의 코드를 넣는다.

...

파이썬은 참 재밌다.

반응형