Telegram bot python github example

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Khalmatov/python-telegram-bots

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Реализация телеграм-ботов различными методами, начиная от написания бота на чистом Python без внешних фреймворков и заканчивая реализацией бота внутри фреймворка Django

Проект находится в стадии разработки и будет регулярно дополняться

Для начала необходимо установить и активировать виртуальную среду, обновить pip и установить все зависимости:

python3 -m venv venv source ./venv/bin/activate pip install pip --upgrade pip install -r requirements.txt

Хардкор-бот без фреймворков

Простой эхо-бот. Умеет работать только с GET -запросами. Для этого он использует библиотеку requests .
Для получения обновлений от Telegram используется метод getUpdates . Исходники лежат здесь.

Предполагается, что токен лежит в файле config.py в папке bot-hardcore

Разница между предыдущим ботом и этим в методе получения обновлений от Telegram. Здесь бот вместо того, чтобы периодически спамить сервера Telegram методом getUpdates для получения обновлений, работает по принципу Webhook .
Исходники лежат здесь.

Предполагается, что токен лежит в файле config.py в папке bot-flask

Запуск на сервере с установленным сертификатом SSL

Для этого на сервере необходимо настроить связку Flask + UWSGI + Nginx
В этом вам поможет статья на DigitalOcean

Запуск на localhost или на сервере без SSL

Telegram требует, чтобы url-адрес для вебхука начинался с https:// . Поэтому для установки бота на локальный сервер или на сервер без SSL-сертификата вам понадобится установить «туннель» через сторонние сервисы типа localhost.run или ngrok. Рассмотрим пример установки с localhost.run.

Например, если в ваш web-сервер на Flask с телеграм-ботом внутри запущен по адресу 127.0.0.1:5000 (по умолчанию), вам достаточно ввести в терминале эту команду:

ssh -R 80:localhost:5000 localhost.run

В ответ вы получите url-адреса вида https://f6773f9edca4d5.localhost.run , по которому извне можно будет получить доступ к локальным файлам вашего компьютера

Для установки вебхука необходимо послать get-запрос такого формата:

https://api.telegram.org//setWebhook?url=

  • token — это токен, который вы получили от BotFather
  • url — это url-адрес, на который будут приходить обновления в виде POST-запроса
https://api.telegram.org/bot123445:FJFIOEJFIOER/setWebhook?url=https://bot.mysite.com

Чтобы послать get-запрос скопируйте url выше (изменив данные на свои) и:

  • либо вставьте url в поле ввода адреса вашего браузера и нажмите Enter
  • либо в терминале пошлите запрос через curl :
curl -X GET https://api.telegram.org/bot123445:FJFIOEJFIOER/setWebhook?url=https://f6773f9edca4d5.localhost.run

В ответ вы должны получить:

< "ok":true, "result":true, "description":"Webhook was set" >

Бот, который реализован внутри приложения Django и запускаетя по команде python manage.py bot .
Используется фреймворк python-telegram-bot
Исходники лежат здесь.

Предполагается, что токен лежит в файле config.py в папке bot-django

Настройка рабочей среды Django

Для того, чтобы бот работал, он должен находиться внутри зарегистрированного приложения Django. Если у вас уже есть готовый проект на Django, переходите сразу на шаг №2. В ином случае:

django-admin startproject myproject cd ./myproject
  1. Скопируйте bot-django в родительскую папку проекта Django (в моем случае это папка myproject ) и зарегистрируйте приложение в настройках по пути `myproject/settings.py’:
. INSTALLED_APPS = [ . 'bot-django', ] .

Если все прошло успешно, при наборе в терминале команды python manage.py —help вы должны увидеть что-то подобное:

Type 'manage.py help ' for help on a specific subcommand. Available subcommands: . [bot-django] bot

Как вы, наверное, уже догадались, запуск бота осуществляется командой python manage.py bot . Если бот успешно запущен, вы должны увидеть в терминале такой ответ:

'id': 1234567890, 'first_name': 'Крутой-бот', 'is_bot': True, 'username': 'very_cool_bot', 'can_join_groups': False, 'can_read_all_group_messages': False, 'supports_inline_queries': False>

Источник

Читайте также:  Java string equals или
Оцените статью