@ytochka_alisa
пытаюсь понять питон этот блин

Почему боту не приходят сообщения из беседы ВКонтакте?

Бот ВК видит сообщения, отправленные ему в лс (и возвращает сообщение с таким же текстом), но не реагирует на сообщения в беседе (даже print(event) не засекает). Нашла похожий вопрос, в ответе сказано, что сообщения должны быть адресованы ему, но так и не поняла, что это значит. Работает через BotsLongPoll. Что не так?
Скриншоты

В беседе:
5d5550c92aecd765203900.png
В личке:
5d5550dc064b4093809060.png

Код на Python, библиотека aiovk

session = TokenSession(access_token = 'token')
api = API(session)
lp = longpoll.BotsLongPoll(api, mode=2, group_id=group_id)

async def main():
    try:
        event = await lp.wait()
    except asyncio.TimeoutError:
        pass
    else:
        if event['updates'] != []:
            if event['updates'][0]['type'] == 'message_new':        
                await api.messages.send(
                    user_id=event['updates'][0]['object']['user_id'],
                    random_id=int(time.time()*10000),
                    message=event['updates'][0]['object']['body'])
    asyncio.get_event_loop().create_task(main())
        
loop = asyncio.get_event_loop()
loop.create_task(main())
loop.run_forever()

  • Вопрос задан
  • 965 просмотров
Решения вопроса 1
@ytochka_alisa Автор вопроса
пытаюсь понять питон этот блин
Ох ё, все оказалось гораздо проще. Я использовала версию LongPoll 5.50 - поставила 5.101 и всё приходит как надо. Всем спасибо)
5d58194e87fa8728641261.png
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@StockholmSyndrome
if event['updates'][0]['type'] == 'message_new':

ну так может это не единственное событие, которое пришло от лонгполла, проверяйте все события, а не только первое

ещё проверьте, есть ли у бота доступ к упоминаниям и командам в беседе
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы