мета-данные страницы
  •  

Это старая версия документа!


Устанавливаем пакет python3-venv

sudo apt install python3-venv

Создаем виртуальное окружение

python3 -m venv tgbot

Создался каталог tgbot. Переходим в него

cd tgbot

Активируем вирутальное окружение скриптом activate

source bin/activate

(tgbot) в начале командной строки означает, что мы находимся внутри виртуального окружения

Установим пакет aiogram внутри виртуального окружения:

pip install aiogram

Убедимся, что установили пакет:

pip list | grep aiogram

Создаём скрипт

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='6937598587: AAHHOF6BWiAaFond2bAXX7LnIE6AsiaxfcE'
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 в скрипте.