dethain
@dethain
Верстальщик

Vk api как боту в беседе получить айди сообщения?

import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
from config import main_token, admins
import time
import random

vk_session = vk_api.VkApi(token=main_token)
longpoll = VkBotLongPoll(vk_session, '[group_id]')

for event in longpoll.listen():
  if event.type == VkBotEventType.MESSAGE_NEW and event.from_chat:

    msg_id = event.object.message['conversation_message_id']
    user_id = event.object.message['from_id']

    for id in admins:
      if (user_id != id):
        vk_session.method('messages.send', {'user_id':id, 'forward_messages':[msg_id], 'random_id': random.getrandbits(32)})

У меня есть такой код, который должен пересылать все сообещния участников бесед администраторам, но я часто натыкаюсь на ошибку vk_api.exceptions.ApiError: [10] Internal server error, а отправляются не те сообщения. Я так понимаю conversation_message_id это не то же самое что message id в LongPoll, но как тогда быть, если я использую BotLongPoll?

И еще он почему то реагирует только на сообщения в беседе где он создатель, а когда я приглашаю его в другую беседу, на неё он не реагирует, пробовал выдавал администратора
  • Вопрос задан
  • 498 просмотров
Пригласить эксперта
Ответы на вопрос 1
@hondra69
for event in longpoll.listen():
  if event.type == VkBotEventType.MESSAGE_NEW and event.from_chat:

    msg_id = event.obj['message']['conversation_message_id']
    user_id = event.obj['message']['from_id']
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы