Как отслеживать все сообщения в VK/ВК (входящие/исходящие) vkbottle?
Пишу бота для сообщества ВК на vkbottle. Логика работы заключается в следующем: User общается сначала с ботом, а потом, если есть необходимость, нажимает кнопку "Перейти в чат с админом сообщества", в этот момент бот отключается и сообщения, которые пишет пользователь уходят на админа группы. После завершения диалога с админом сообщества надо включить бота обратно. Пытаюсь сделать через event, когда бот слушает все сообщения и по определенному тексту заново включает бота, но не получается.
Как отслеживать все сообщения в чате сообщества (в переписке с user)? С помощью event? Помогите пожалуйста
from vkbottle.bot import Bot, Message, MessageEvent
from vkbottle import Keyboard, KeyboardButtonColor, Text, OpenLink, GroupEventType, GroupTypes, VKAPIError
bot = Bot(TOKEN)
gremlins = (
Keyboard(inline=True)
.add(Text("Gizmo", {"btn": "Gizmo"}))
.add(Text("Stripe", {"btn": "Stripe"}))
).get_json()
btn_ask_question_admin = (
Keyboard(inline=True)
.add(Text("Задать вопрос администратору", {"btn": "ask_question"}))
).get_json()
@bot.on.private_message(text=['Начать', 'hello', 'start', 'начать', 'привет'])
@bot.on.private_message(payload={"btn": "Начать"})
async def start(message: Message):
await message.answer('Выбери своего гремлина!', keyboard=gremlins)
@bot.on.private_message(text='Начать')
@bot.on.private_message(payload={"btn": "Gizmo"})
async def gremlin_gizmo(message: Message):
btn_return = Keyboard(one_time=True, inline=False).add(Text('Основное меню', {"btn": "Начать"}))
await message.answer('ТЕКСТ ТЕКСТ ТЕКСТ', keyboard=btn_return)
await message.answer('Не нашли нужного гремлина или хотите дополнить информацию, Вы можете связаться с нашим администратором.', keyboard=btn_ask_question_admin)
@bot.on.private_message(payload={"btn": "ask_question"})
async def ask_question_admin(message: Message):
btn_return = Keyboard(one_time=False, inline=False).add(Text('Основное меню', {"btn": "Начать"}))
await message.answer('Пожалуйста, напишите свой вопрос.', keyboard=btn_return) # тут пользователь пишет сообщения, которые уходят на админа сообщества
@bot.on.raw_event(GroupEventType.MESSAGE_REPLY) # вот тут пытаюсь отловить исходящие сообщения сообщества, то есть сообщения от админа к user, но постоянно падаю с ошибкой.
async def return_bot(event: Message):
if event.reply_message.text == 'Благодарим':
await bot.on.private_message(
user_id=event.object.user_id,
message='Выбери своего гремлина!',
keyboard=gremlins,
random_id=0
)
if __name__ == "__main__":
bot.run_forever()