Не реагирует на callback кнопки aiogram

Рейтинг: 0Ответов: 1Опубликовано: 28.01.2023

Не реагирует на Callback кнопку verifyButton

import asyncio
import logging
import time
botnick='#У меня тут ник бота'

from aiogram import Bot, Dispatcher, types
from aiogram import executor
from aiogram.types import ContentType, Message
from aiogram.types import ReplyKeyboardRemove, ReplyKeyboardMarkup, KeyboardButton
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
from aiogram.types.chat_permissions import ChatPermissions
from config_reader import config
from text import *
from login import *
from design import *
chat_id1=0
token=config.bot_token.get_secret_value()
logging.basicConfig(level=logging.INFO)
bot = Bot(token)
dp = Dispatcher(bot)
urlkb = InlineKeyboardMarkup(row_width=1)
urlButton = InlineKeyboardButton(text='Пройти верификацию', url=f'https://t.me/{botnick}?start=verify')
urlkb.add(urlButton)
urkkb2 = InlineKeyboardMarkup(row_width=1)
urlkb2 = InlineKeyboardButton('Я прочитал❗', callback_data='verifyButton')
urkkb2.insert(urlkb2)
@dp.message_handler(content_types=[ContentType.NEW_CHAT_MEMBERS])
async def new_members_handler(message: Message):
    global chat_id1;
    new_member = message.new_chat_members[0]
    await message.bot.restrict_chat_member(message.chat.id, new_member.id, ChatPermissions(can_send_messages=False))
    chat_id1=message.chat.id
    msg_welcome=await bot.send_message(message.chat.id, welcome, reply_markup=urlkb)
@dp.message_handler(regexp='/start')
async def verify(message: types.Message):
    if '/start verify'==message.text:
        await bot.send_message(message.chat.id, welcome2, reply_markup=urkkb2)
@dp.callback_query_handler(text="verifyButton")
async def verify2(call: types.CallbackQuery):
    global chat_id1;
    await call.message.delete()
    await call.answer(text="Вы успешно прошли верификацию!", show_alert=True)
    await bot.restrict_chat_member(chat_id1, call.message.chat.id, ChatPermissions(can_send_messages=True))
    try:
        await msg_welcome.delete()
    except Exception as e:
        print("Ошибка")

if __name__ == "__main__":
    executor.start_polling(dp)

Ответы

▲ 0

Попробуйте сделать так:

@dp.callback_query_handler(Text(startwith="verifyButton"))
async def verify2(call: types.CallbackQuery):
    global chat_id1;
    await call.message.delete()
    await call.answer(text="Вы успешно прошли верификацию!", show_alert=True)
    await bot.restrict_chat_member(chat_id1, call.message.chat.id, ChatPermissions(can_send_messages=True))
    try:
        await msg_welcome.delete()
    except Exception as e:
        print("Ошибка")