A simple app to develop Telegram bots with Django
The full documentation is at https://django-telegrambot.readthedocs.org.
Install django-telegrambot:
pip install django-telegrambot
- Add "django_telegram_bot" to your INSTALLED_APPS setting
Configure your installation
```python #settings.py #Django Telegram Bot settings TELEGRAM_BOT_TOKENS = ('BOT_1_token','BOT_2_token',) TELEGRAM_WEBHOOK_SITE = 'https://mysite.it' TELEGRAM_WEBHOOK_BASE = '/baseurl' #TELEGRAM_BOT_CERTIFICATE = 'cert.pem' #If your site use self-signed certificate, must be set with location of your public key certificate. (More info at https://core.telegram.org/bots/self-signed ) ```
- Include in your urls.py the
`'django_telegrambot.urls'`
using the same value of`TELEGRAM_WEBHOOK_BASE`
:
Then use it in a project creating a module `telegrambot.py`
in your app like this:
- ```python
#myapp/telegrambot.py from django_telegrambot.apps import DjangoTelegramBot
- def start(bot, update):
- bot.sendMessage(update.message.chat_id, text='Hi!')
- def help(bot, update):
- bot.sendMessage(update.message.chat_id, text='Help!')
- def echo(bot, update):
- bot.sendMessage(update.message.chat_id, text=update.message.text)
- def error(bot, update, error):
- logger.warn('Update "%s" caused error "%s"' % (update, error))
- def main():
print "Handlers for telegram bot"
#Utilizzare questa variabile per ottenere il dispatcher relativo al default bot dp = DjangoTelegramBot.dispatcher
# in alternativa si può selezionare quale bot usare utilizzando la seguente funzione: ''' dp = DjangoTelegramBot.getDispatcher('BOT_2_token') #by bot dp = DjangoTelegramBot.getDispatcher('BOT_2_username') #by bot username
'''
# on different commands - answer in Telegram dp.addTelegramCommandHandler("start", start) dp.addTelegramCommandHandler("help", help)
# on noncommand i.e message - echo the message on Telegram dp.addTelegramMessageHandler(echo)
# log all errors dp.addErrorHandler(error)
- Multiple bots
Patches and bug reports are welcome, just please keep the style consistent with the original source.
Does the code actually work?
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install -r requirements-test.txt (myenv) $ python runtests.py
Required package: * Python Telegram Bot
Tools used in rendering this package: