aiogram бот на python СРОЧНО ПОМОГИТЕ ПОЖАЛУЙСТА!
Хочу сделать так, чтобы когда пользователь нажимал на кнопку "Баланс" ему выводился его баланс(пока что пусть будет 0-ой).
import asyncio
import logging
import aiogram
from aiogram import F
from aiogram.filters.command import Command
from aiogram import Bot, Dispatcher, types
from aiogram.enums.dice_emoji import DiceEmoji
from datetime import datetime
from pydantic_settings import BaseSettings, SettingsConfigDict
from pydantic import SecretStr
import config_reader
from aiogram.types import ReplyKeyboardRemove, \
ReplyKeyboardMarkup, KeyboardButton, \
InlineKeyboardMarkup, InlineKeyboardButton
import random
import time
from aiogram.filters import Text
logging.basicConfig(level=logging.INFO)
bot = Bot(token="ТОКЕН МОЕГО БОТА")
dp = Dispatcher()
dp.start_polling(bot)
@dp.message(Command("start"))
async def cmd_start(message: types.Message):
await message.reply("Приветствую тебя в боте по пробиву Q1OTy! Выбери опцию: ")
kb = [
[
types.KeyboardButton(text="Баланс?", request_id=1)
],
[
types.KeyboardButton(text="Пополнить?", request_id=2)
],
[
types.KeyboardButton(text="Профиль?", request_id=3)
]
]
keyboard = types.ReplyKeyboardMarkup(
# keyboard=kb,
# resize_keyboard=True,
input_field_placeholder="Выберите опцию:"
)
@dp.message(Text(equals="Баланс?"))
async def Balance(message: types.Message):
await message.reply(""" Ваш баланс: 0₽
Доступных запросов: 0
Пополните баланс для продолжения пользования запросов бота!""")
@dp.message(Text(equals="Пополнить?"))
async def Popolnitt(message: types.Message):
await message.reply(""" Пополнить можно по ссылке ниже:
https://my.qiwi.com/Anna-GJMDlYBNwq?noCache=true""")
@dp.message(Text(equals="Профиль?"))
async def Profile(message: types.Message):
await message.reply(message.from_user.username, message.from_user.id, message.from_user.first_name, message.from_user.last_name)
сделал так, но aiogram.filters TEXT не распознаёт, поэтому не знаю как сделать чтобы проверка шла на то, что он написал. Буду благодарен всевышне за помощь, 2 для не могу найти ответ((
Ответы (1 шт):
Автор решения: Иван Ипатов
→ Ссылка
- Чтобы работать с клавиатурой, передайте
reply_markup - Вы забыли аргумент
keyboard - Используйте MagicFilter
import logging
from aiogram import F
from aiogram.filters.command import Command
from aiogram import Bot, Dispatcher, types
logging.basicConfig(level=logging.INFO)
bot = Bot(token="")
dp = Dispatcher()
dp.start_polling(bot)
def kb():
kb = types.ReplyKeyboardMarkup(keyboard=[
[
types.KeyboardButton(text="Баланс?", request_id=1)
],
[
types.KeyboardButton(text="Пополнить?", request_id=2)
],
[
types.KeyboardButton(text="Профиль?", request_id=3)
]
], resize_keyboard=True, input_field_placeholder="Выберите опцию:")
return kb
@dp.message(Command("start"))
async def cmd_start(message: types.Message):
await message.reply("Приветствую тебя в боте по пробиву Q1OTy! Выбери опцию: ", reply_markup=kb())
@dp.message(F.text == "Баланс?")
async def balance(message: types.Message):
await message.reply(""" Ваш баланс: 0₽
Доступных запросов: 0
Пополните баланс для продолжения пользования запросов бота!""")