我试图得到一个随机数,而点击内联按钮。我得到一个消息与按钮,但当我点击他们什么都没有发生-我只是看到一个小时钟在按钮。下面是我的处理程序:
from loader import dp
from random import randint
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
from aiogram import types
button1 = InlineKeyboardButton(text="Random 1-10", callback_data="random1-10")
button2 = InlineKeyboardButton(text="Random 1-100", callback_data="random1-100")
keyboard_inline = InlineKeyboardMarkup().add(button1, button2)
@dp.message_handler(commands=["random"], state="*", content_types=types.ContentTypes.ANY)
async def cmd_random(message: types.Message):
await message.reply("Select a range", reply_markup=keyboard_inline)
@dp.callback_query_handler(text=["random1-10", "random1-100"])
async def random_value(call: types.CallbackQuery):
if call.data == "random1-10":
await call.message.answer(str(randint(1, 10)))
elif call.data == "random1-100":
await call.message.answer(str(randint(1, 100)))
await call.answer()
OR
@dp.callback_query_handler(lambda c: c.data == 'random1-10')
async def process_callback_button1(callback_query: types.CallbackQuery):
await dp.bot.answer_callback_query(callback_query.id)
await dp.bot.send_message(callback_query.from_user.id, 'First button clicked!')
我也试着发送一个没有任何函数的静态消息,但什么也没发生。也许我需要打开史密斯?
你需要添加
state="*"
到
@dp.callback_query_handler(text=["random1-10", "random1-100"])