мета-данные страницы
Это старая версия документа!
Задание бонусное. TelegramBot
Устанавливаем пакет python3-venv
sudo apt install python3-venv
Создаем виртуальное окружение
python3 -m venv tgbot
Создался каталог tgbot. Переходим в него
cd tgbot
Активируем вирутальное окружение скриптом activate
source bin/activate
(tgbot) в начале командной строки означает, что мы находимся внутри виртуального окружения
Для выхода из виртуального окружения можно набрать команду «deactivate», но сейчас нам это не нужно.
Установим библиотеку aiogram внутри виртуального окружения:
pip install aiogram
Убедимся, что установили библиотеку:
pip list | grep aiogram
Создаём скрипт Python:
import asyncio
import logging
import sqlite3
from aiogram import Router, F, Bot, Dispatcher
from aiogram.types import Message, CallbackQuery, ReplyKeyboardMarkup, KeyboardButton
from aiogram.filters import CommandStart, Command
router = Router()
TOKEN='xxx'
maink = ReplyKeyboardMarkup (keyboard=[[KeyboardButton(text='Список пользователей')]], resize_keyboard=True)
@router.message (CommandStart())
async def cmd_start(message: Message):
await message.answer('Привет!', reply_markup = maink)
@router.message (F.text == 'Список пользователей')
async def database (message: Message):
con = sqlite3.connect('/home/bsk23-01-student-1/python/pythondb2')
cur = con.cursor()
cur.execute('SELECT * FROM users')
data_list = cur.fetchall()
con.close()
for data in data list:
await message.answer(f'Имя {data[0]}; Boзpacт {data[1]}')
@router.message()
async def word (message: Message):
await message.reply('Я тебя не понимаю!')
async def main():
bot = Bot(token=TOKEN)
dp = Dispatcher()
dp.include_router(router)
await dp.start_polling (bot)
if __name__=="__main__":
logging.basicConfig(level=logging.INFO)
try:
asyncio.run(main())
except KeyboardInterrupt:
print('Exit')
Создаём бота в TG:
В TG находим @BotFather и запускаем его
/newbot
Сочиняем имя бота и имя пользователя бота Например «My_WiFi_Users_bot»
Получаем токен и записываем его в значение переменную TOKEN в скрипте.
Запускаем наш Python-скрипт. Должны увидеть следующее:
(tgbot) bsk23-01-student-1@BSK23-01-1:~/tgbot$ python3 tgbot.py INFO:aiogram.dispatcher:Start polling INFO:aiogram.dispatcher: Run polling for bot @My_WiFi_Users_bot id=6937598587 'My_WiFi Users'
Открываем на телефоне Telegram, подключаемся к своему боту, запускаем!
