Начал изучать документацию vk api и захотел написать своего бота на python. Сразу говорю - все права я ему дал, ключ сгенерировал и т.д. Есть данная страница -
https://vk.com/dev/groups_event , она описыват все события, которые можно использовать в vk api. Все делаю через Long Poll. Самое простое, реакция на определённое сообщения пользователя, работает (событие message_new) через такой код:
import requests
import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType
from vk_api.utils import get_random_id
vk_session = vk_api.VkApi(token='a94555a01de3af80559b4184b10c33d5b8c88203afb449090b4bc0a06fa7485e3be0114453a3bf7681f1f')
longpoll = VkLongPoll(vk_session)
vk = vk_session.get_api()
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW and event.text:
if event.text == 'привет' or event.text == 'здарова':
vk.messages.send(user_id=event.user_id, random_id=get_random_id(), message='Привет!')
print('Ja')
По такой логике, как я понял, бот может реагировать на любое событие таким образом:
if event.type == VkEventType.{любое событие из документации}: vk.messages.send(user_id=event.user_id, random_id=get_random_id(), message='Привет!')
Однако почему-то это не работает. Вот такой код выдаёт ошибку:
elif event.type == VkEventType.PHOTO_NEW:
vk.messages.send(user_id=event.user_id, random_id=get_random_id(), message='Привет!')
print('Ja')
При этом такое ощущение, что события PHOTO_NEW вообще не существует, его даже не предлагает visual studio в подсказках, хотя в документации он есть. Вот подробный отчёт:
Сообщение = PHOTO_NEW
Источник = C:\Users\vovak\source\repos\PythonApplication2\PythonApplication2\PythonApplication2.py
Трассировка стека:
File "C:\Users\vovak\source\repos\PythonApplication2\PythonApplication2\PythonApplication2.py", line 16, in
elif event.type == VkEventType.PHOTO_NEW:
В кратком описании ошибки выдаёт просто PHOTO_NEW. При этом есть события, которых нет в документации И ОНИ РАБОТАЮТ, например USER_TYPING (срабатывает, когда пользователь пишет что-то в чат), узнал о нём через подсказки visual studio. Если вы знаете, как боту среагировать, допустим, именно на фото, покажите, пожалуйста, откуда вы это узнали, потому что я ничего для python не нашёл.