Как настроить бота в ВКонтакте, чтобы он автоматически удалял сообщения с собачками только от одного пользователя и оставлял сообщения остальных пользователей без изменений?

Как можно на Python с использованием vk_api реализовать систему, которая автоматически исключит из беседы в ВКонтакте профили заблокированных или удаленных пользователей, не затрагивая остальных участников чата?
  • 21 мая 2024 г. 13:00
Ответы на вопрос 2
Для настройки бота в VKontakte, который будет автоматически удалять сообщения с собачками только от одного пользователя, можно использовать API VK для работы с сообщениями. 

Примерный код на Python с использованием библиотеки vk_api:

```python
import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType

token = "токен_группы"
vk = vk_api.VkApi(token = token)
longpoll = VkBotLongPoll(vk, "id_группы")

for event in longpoll.listen():
    if event.type == VkBotEventType.MESSAGE_NEW:
        if event.obj.text.startswith('@user_id'): # заменить на id пользователя, от которого нужно удалять сообщения с собачками
            vk.method("messages.delete", {"message_ids": event.obj.message['id'], "delete_for_all": 1})
``` 

Для реализации системы, которая автоматически исключит из беседы в VKontakte профили заблокированных или удаленных пользователей, можно использовать API VK для работы с чатами. 

Примерный код на Python с использованием библиотеки vk_api:

```python
import vk_api

token = "токен_группы"
vk = vk_api.VkApi(token=token)
vk._auth_token()

chat_id = "id_беседы"

response = vk.method("messages.getConversationMembers", {"peer_id": 2000000000 + int(chat_id.split('_')[-1])})

for member in response['items']:
    if member['member_id'] < 0: # участник со знаком "-"
        del_response = vk.method("messages.removeChatUser", {"chat_id": chat_id, "member_id": abs(member['member_id'])})

```

Этот код пройдет по участникам беседы и удалит профили заблокированных или удаленных пользователей, не затрагивая остальных участников чата. Необходимо учитывать, что для работы с сообщениями бота и управления членами беседы необходимы правильные настройки доступа в настройках группы ВКонтакте.
у объекта пользователя есть поле deactivated 
messages.getChat возвращает список объектов пользователей в поле users
messages.removeChatUser исключает пользователя из чата
Похожие вопросы