@nintendolyub

Почему пишешь в беседу а бот отвечает в лс?

import vk_api
from vk_api.utils import get_random_id
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
import requests
from vk_api.longpoll import VkEventType


vk_session = vk_api.VkApi(token="я чеченец")

vk = vk_session.get_api()
longpoll = VkBotLongPoll(vk_session, "186308067")

for event in longpoll.listen():
    if event.type == VkBotEventType.MESSAGE_NEW:
        if event.obj.text == 'ок':
            if event.from_chat:
                vk.messages.send(
                        user_id=event.obj.from_id,
                        random_id=get_random_id(),
                        chat_id=event.chat_id,
                        message="bruh")
        if event.obj.text == 'кто':
            if event.from_chat:
                vk.messages.send(
                        user_id=event.obj.from_id,
                        random_id=get_random_id(),
                        chat_id=event.chat_id,
                        message="нет")
  • Вопрос задан
  • 160 просмотров
Решения вопроса 1
makssof
@makssof
Web-разработчик
Необходимо понять разницу user_id и peer_id
user_id может приходить и из беседы, это будет говорить о том, какой человек конкретно написал. А peer_id -- это идентификатор диалога. Диалог может быть с человеком лично, тогда будет user_id === peer_id, а может и отличаться, когда это беседа.
Всегда берите peer_id, сообщения шлите всегда К peer_id
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
SoreMix
@SoreMix
yellow
Так вы и адресуете его пользователю
user_id=event.obj.from_id

Передавайте тогда event.obj.from_id в параметр peer_id
https://vk.com/dev/messages.send
Ответ написан
0ralo
@0ralo
Нормальный такой питонист + начинаю Android::Java
Вы пишете человеку, а не в чат, у чата айди начинается с минуса вроде. А что бы отправить человеку в чате, надо его упомянуть в сообщении через "@"
Ответ написан
Ваш ответ на вопрос

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

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