Answer the question
In order to leave comments, you need to log in
How to convert a VK bot to Python to work in conversations?
There is a bot code that works on vk_api and longpoll. Sample code:
from vk_api.longpoll import VkLongPoll,VkEventType
from vk_api.keyboard import VkKeyboard
from messages import *
import time
import vk_api
import json
def sendmess(msg):
vk.messages.send(user_id=event.peer_id,message=msg,random_id= randint(1, 2147483647),keyboard=menu)
def chkmsg(msg, txt):
for s in txt:
if s==msg.lower():
return True
break
vk_session = vk_api.VkApi(token="токен")
longpoll = VkLongPoll(vk_session)
vk = vk_session.get_api()
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW and event.text:
try:
if chkmsg(event.text, ["spam", "eggs","консервы","яйца"]):
sendmess(spameggs)
else:
time.sleep(1)
except Exception as E:
print(E)
sendmess("Привет! У бота ошибка. Перешли это сообщение @somebody \nОшибка:\n"+str(E))
time.sleep(1)
Answer the question
In order to leave comments, you need to log in
I corrected the Renat Ataev option , it works for me.
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType #загружаем библиотеки VkBotLongPoll и VkBotEventType, вместо VkLongPoll и VkEventType
from vk_api.keyboard import VkKeyboard
from messages import *
import vk_api, json, time, random
def sendmess(msg):
print(event.obj.peer_id)
vk.messages.send(peer_id=event.obj.peer_id, message=msg, random_id=random.randint(1, 2147483647), keyboard=menu) #event.obj.peer_id - тот же самый event.peer_id
def chkmsg(msg, txt):
for s in txt:
if s==msg.lower():
return True
break
menu=VkKeyboard()
menu.add_button(label="spam")
menu = menu.get_keyboard()
vk_session = vk_api.VkApi(token="токен")
vk = vk_session.get_api()
longpoll = VkBotLongPoll(vk_session, 1234) # 1234 - ID группы (число)
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW and event.obj.text: #event.obj.text - event.text
try:
if chkmsg(event.obj.text, ["spam","eggs","консервы","яйца"]):
sendmess(spameggs)
else:
time.sleep(1)
except Exception as E:
print(E)
sendmess("Привет! У бота ошибка. Перешли это сообщение @somebody \nОшибка:\n"+str(E))
time.sleep(1)
Use this code
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType #загружаем библиотеки VkBotLongPoll и VkBotEventType, вместо VkLongPoll и VkEventType
from vk_api.keyboard import VkKeyboard
from messages import *
import vk_api, json, time
def sendmess(msg):
vk.messages.send(user_id=event.obj.peer_id, message=msg, random_id= randint(1, 2147483647), keyboard=menu) #event.obj.peer_id - тот же самый event.peer_id
def chkmsg(msg, txt):
for s in txt:
if s==msg.lower():
return True
break
vk_session = vk_api.VkApi(token="токен")
vk = vk_session.get_api()
longpoll = VkBotLongPoll(vk_session, 1234) # 1234 - ID группы (число)
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW and event.obj.text: #event.obj.text - event.text
try:
if chkmsg(event.obj.text, ["spam", "eggs", "консервы", "яйца"]):
sendmess(spameggs)
else:
time.sleep(1)
except Exception as E:
print(E)
sendmess("Привет! У бота ошибка. Перешли это сообщение @somebody \nОшибка:\n"+str(E))
time.sleep(1)
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question