D
D
d!key 0ficial2020-07-27 23:08:34
Python
d!key 0ficial, 2020-07-27 23:08:34

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)


In messages.py I took out the messages. spameggs from there.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
D
d!key 0ficial, 2020-08-02
@dikey_0ficial

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)

R
Renat Ataev, 2020-07-28
@fanepka

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 question

Ask a Question

731 491 924 answers to any question