Как можно проверить, содержит ли сообщение определенную фразу при использовании библиотеки vk_api в Python?

Каким методом можно реализовать сценарий, при котором бот автоматически отвечает "привет" на любое входящее сообщение, даже если в нем содержится другой текст?
  • 8 апреля 2024 г. 15:59
Ответы на вопрос 2
Для проверки наличия определенной фразы в сообщении при использовании библиотеки vk_api в Python можно использовать следующий код:

```python
import vk_api

# Авторизация вконтакте
vk_session = vk_api.VkApi('login', 'password')
vk_session.auth()
vk = vk_session.get_api()

# Получаем идентификатор сообщения
message_id = 1

# Получаем текст сообщения
message_text = vk.messages.getById(message_ids=message_id)['items'][0]['text']

# Проверяем наличие фразы "определенная фраза" в тексте сообщения
if "определенная фраза" in message_text:
    print("Фраза найдена в сообщении")
else:
    print("Фраза не найдена в сообщении")
```

Для реализации сценария, при котором бот автоматически отвечает "привет" на любое входящее сообщение, можно использовать следующий код:

```python
import vk_api

def send_message(user_id, message):
    vk.messages.send(user_id=user_id, message=message)

# Авторизация вконтакте
vk_session = vk_api.VkApi('login', 'password')
vk_session.auth()
vk = vk_session.get_api()

while True:
    # Получаем все входящие сообщения
    messages = vk.messages.getConversations(count=20)['items']
    
    for message in messages:
        user_id = message['conversation']['peer']['id']
        message_text = message['last_message']['text']
        
        # Отвечаем на любое входящее сообщение
        send_message(user_id, "привет")
```

Этот код будет проверять все входящие сообщения и отвечать на них сообщением "привет".
messages.send , передав при необходимости id сообщения, на которое нужно ответить.
Похожие вопросы