Вк бот не читает сообщения и не отвечает в лс
Бот не видит сообщения (даже в ЛС).
Код:
import vk_api, random
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
# из лонг пулла импортируем нужные нам библиотеки.
class Server:
def __init__(self, api_token, group_id, server_name: str="Empty"):
# Даем серверу имя
self.server_name = server_name
# Для Long Poll
self.vk = vk_api.VkApi(token=api_token)
# Для использования Long Poll API
self.long_poll = VkBotLongPoll(self.vk, group_id)
# Для вызова методов vk_api
self.vk_api = self.vk.get_api()
def send_msg(self, send_id, message):
"""
Отправка сообщения через метод messages.send
:param send_id: vk id пользователя, который получит сообщение
:param message: содержимое отправляемого письма
:return: None
"""
#vk.method("messages.send", {"peer_id": id, "message":"Привет!!!", "random_id":123456})
self.vk_api.messages.send(peer_id=send_id, message=message, random_id = 1)
def test(self):
# Посылаем сообщение пользователю с указанным ID
self.send_msg(474816854, "Hi!")
def start(self):
for event in self.long_poll.listen():
print(event)
self.test()
Так же не понимаю, зачем нужен random_id.
Ответы (1 шт):
Автор решения: nomnoms12
→ Ссылка
Укажите типы событий для Long Poll:
random_id — это уникальный идентификатор сообщения при отправке на сервер.
Обязательно должен быть разный для каждого сообщения. Получить его можете с помощью функции get_random_id из модуля vk_api.utils. Нужен для того, чтобы отличать сообщения. Например, чтобы не отправить дважды при сбоях в сети.
