@xpril

Приветствие нового участника в беседе ВК реагирует на обычные сообщения, с ошибкой KeyError: 'action', не могу понять этой ошибки?

import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
import random

token = "token"
vk = vk_api.VkApi(token=token)
longpoll = VkBotLongPoll(vk, 12345678)

##################################################################################################

def sender(chat_id, message):
	vk.method("messages.send", {"chat_id": chat_id, "message": message, "random_id": 0})

def rename(chat_id, title):
	vk.method("messages.editChat", {"chat_id": cid, "title": title})

def greeting(chat_id, user_ids):
	user = vk.method("users.get", {"user_ids": user_ids})
	fullname = user[0]["first_name"]
	gg = "[id" + str(user_ids) + "|" + str(fullname) + "], здравствуй, чувствуй себя как дома."
	vk.method("messages.send", {"chat_id": chat_id, "message": gg, "random_id": 0})



##################################################################################################

while True:
	for event in longpoll.listen():
		if event.type == VkBotEventType.MESSAGE_NEW:
			msg = event.object.message['text'].lower()
			bodyone = msg.split()
			id = event.message.from_id
			cid = event.chat_id
				
			if event.object.message['action']['type'] == "chat_invite_user":
				greeting(cid, id)

			if event.object.message['action']['type'] == "chat_pin_message":
				sender(cid, "Открепляй.")


Как видно выше, есть 2 триггера, один на присоединение участника, второй на закрепление сообщения, оба работают как надо, но если в беседу написать что-то иное, даже просто "привет", выдаёт такую вот ошибку:

Traceback (most recent call last):
  File "путь к .py файлу", line 47, in <module>
    if event.object.message['action']['type'] == "chat_pin_message":
KeyError: 'action'
>>>
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

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