Django app to write Telegram bots
Django app to write Telegram bots. Just define commands and how to handle them.
NOTE: Just for text messages at this moment.
The full documentation is at https://django-telegram-bot.readthedocs.org.
Telegram API documentation at https://core.telegram.org/bots/api
pip install django-telegram-bot
Add telegrambot and rest_framework to your INSTALLED_APPS, and run:
$ python manage.py migrate
After creating a bot in Telegram Platform, create at least one bot with django admin. Token is the only required field. You may need to provided public key certificate for your server. https://core.telegram.org/bots/self-signed Heroku has https and ssl by default so it is a good option if you dont want to deal with that.
Add webhook url to your urlpatterns:
url(r'^telegrambot/', include('telegrambot.urls', namespace="telegrambot")
Define whe file where commands will be defined in bothandlers variable, analogue to django urls and ROOT_URLCONF:
TELEGRAM_BOT_HANDLERS_CONF = "app.handlers"
Set bot commands handlers is very easy just as defining urls in django. Module with bothandlers that list different handlers:
bothandlers = [command('start', StartView.as_command_view()), command('author', AuthorCommandView.as_command_view()), command('author_inverse', AuthorInverseListView.as_command_view()), command('author_query', AuthorCommandQueryView.as_command_view()), unknown_command(UnknownView.as_command_view()), regex(r'author_(?P<name>\w+)', AuthorName.as_command_view()), ]
To set the webhook for telegram you need django.contrib.sites installed, SITE_ID configured in settings and with it correct value in the DB. The webhook for each bot is set when a Bot is saved and enabled field is set to true.
Command views responses with Telegram messages to the user who send the command with a text message and keyboard. Compound with a context and a template. The way it is handled is analogue to Django views. Visits docs for more details https://django-telegram-bot.readthedocs.org/usage.html
Commands handling definition.
Text responses and keyboards.
Media messages not supported.
Only Markup parse mode.
Does the code actually work?
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install -r requirements/test.txt (myenv) $ make test (myenv) $ make test-all
First release on PyPI.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for django-telegram-bot-0.3.0.tar.gz
Hashes for django_telegram_bot-0.3.0-py2.py3-none-any.whl