@sodbroil
Начинающий PHP программист.

VK_API, LONGPOLL. Проблема с обязательным позиционным аргументом: 'self'. Как решить?

Запускаю код, а он выдает вот такую вот ошибку:

line 23, in
for event in longpoll.listen():
TypeError: listen() missing 1 required positional argument: 'self'

Сам код:
import random

import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType

# --
from vk_bot import VkBot
# --

def write_msg(user_id, message):
vk.method('messages.send', {'user_id': user_id, 'message': message, 'random_id': random.randint(0, 2048)})

# API-ключ созданный ранее
token = "не скажу"

# Работа с сообщениями
longpoll = VkLongPoll

print("Server started")
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW:

if event.to_me:

print(f'New message from {event.user_id}', end='')

bot = VkBot(event.user_id)

if event.text[0] == "/":
write_msg(event.user_id, commander.do(event.text[1::]))
else:
write_msg(event.user_id, bot.new_message(event.text))

print('Text: ', event.text)
print("-------------------")
  • Вопрос задан
  • 394 просмотра
Пригласить эксперта
Ответы на вопрос 1
Ol3gNoz
@Ol3gNoz
Noob in Python
Или я чего-то не понимаю, или у тебя ошибка в авторизации.
Она должна протекать в таком роде:
vks = vk_api.VkApi(token='токен')
longpoll = VkLongPoll(vks)
session = vk.Session(access_token = 'токен')
vk= vk.API(session, v = "5.95")

В твоём же случае, можно использовать первые две строки
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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