@Vadim_Gornik

Почему бот вк не отвечает в лс?

Бот отвечает в беседе, но не отвечает в лс, в чем проблема? Помогите пожалуйста.
import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType
from vk_api.utils import get_random_id
token = 'токен'

vk_session = vk_api.VkApi(token = token)
session_api = vk_session.get_api()
longpoll = VkLongPoll(vk_session)

def sender(id, text):
	vk_session.method('messages.send', {'user_id': id, 'message' : text, 'random_id' : get_random_id()})
def sender_chat(peer_id, text):
	vk_session.method('messages.send', {'chat_id': peer_id, 'message' : text, 'random_id' : get_random_id()})


for event in longpoll.listen():
	if event.type == VkEventType.MESSAGE_NEW:
		if event.from_user:

			msg = event.text.lower()
			id = event.user_id
            
			if msg == 'бот лох':
				sender(id, 'bruh')
			if msg == 'тест':
				sender(id, 'и чё ты тестировать собрался?')
for event in longpoll.listen():
	if event.type == VkEventType.MESSAGE_NEW:
		if event.from_chat:

			msg = event.text.lower()
			peer_id = event.chat_id
            
			if msg == 'бот лох':
				sender_chat(chat_id, 'bruh')
			if msg == 'тест':
				sender_chat(chat_id, 'и чё ты тестировать собрался?')
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
WolfInChains
@WolfInChains
А зачем вы 2 раза слушаете логнпол
Уберите вот эти 2 строки перед прослушиванием лонгпола от чата
for event in longpoll.listen():
  if event.type == VkEventType.MESSAGE_NEW:
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
aveBHS
@aveBHS
import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType
from vk_api.utils import get_random_id
token = 'токен'

vk_session = vk_api.VkApi(token = token)
session_api = vk_session.get_api()
longpoll = VkLongPoll(vk_session)

def sender(id, text):
  vk_session.method('messages.send', {'user_id': id, 'message' : text, 'random_id' : get_random_id()})
def sender_chat(peer_id, text):
  vk_session.method('messages.send', {'chat_id': peer_id, 'message' : text, 'random_id' : get_random_id()})


for event in longpoll.listen():
  if event.type == VkEventType.MESSAGE_NEW:
    if event.from_user:

      msg = event.text.lower()
      id = event.user_id
            
      if msg == 'бот лох':
        sender(id, 'bruh')
      if msg == 'тест':
        sender(id, 'и чё ты тестировать собрался?')

    elif event.from_chat:

      msg = event.text.lower()
      peer_id = event.chat_id
            
      if msg == 'бот лох':
        sender_chat(chat_id, 'bruh')
      if msg == 'тест':
        sender_chat(chat_id, 'и чё ты тестировать собрался?')
Ответ написан
alex_xpert
@alex_xpert
Java, PHP, JavaScript, HTML&CSS
Возможно дело в том, что

С 15 февраля 2019 года методы секции messages по умолчанию будут доступны для вызова только с ключом доступа сообщества.

Если Вы планируете начать разработку мессенджера, после 15 февраля 2019 года для этого потребуется получить в Поддержке тестовый доступ, подразумевающий работу методов секции Messages с ключами администраторов Вашего Standalone-приложения.

Для получения полного доступа к пользовательскому Messages API приложению будет необходимо пройти модерацию.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
OnederX Москва
от 100 000 до 120 000 ₽
от 80 000 до 120 000 ₽
iDWELL Москва
от 150 000 до 210 000 ₽
14 авг. 2020, в 02:27
1000 руб./за проект
14 авг. 2020, в 01:51
600 руб./за проект