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

  • 17 августа 2023 г. 20:56
Ответы на вопрос 1
Для реализации данной задачи с использованием библиотеки aiogram в языке программирования Python можно следовать следующему подходу:

1. Импортируйте необходимые модули:
```python
import aiogram
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor
```

2. Создайте экземпляр бота и диспетчера:
```python
bot = Bot(token='YOUR_BOT_TOKEN')
dp = Dispatcher(bot)
```

3. Создайте пустой список для хранения последних сообщений:
```python
last_messages = []
```

4. Определите функцию-обработчик для события получения нового сообщения:
```python
@dp.message_handler()
async def handle_new_message(message: types.Message):
    global last_messages
    
    # Проверяем, является ли сообщение первым от пользователя
    if message.from_user.id not in [msg.from_user.id for msg in last_messages]:
        last_messages.append(message)
    else:
        # Проверяем, отличается ли отправитель от предыдущего сообщения в списке
        if message.from_user.id != last_messages[-1].from_user.id:
            last_messages.clear()
        last_messages.append(message)
        
    # Проверяем длину списка последних сообщений
    if len(last_messages) == 2:
        # Отправляем определенный текст
        await message.reply('Ваши сообщения приняты!')
```

5. Запуск бота:
```python
if __name__ == '__main__':
    executor.start_polling(dp)
```

Полный пример можно представить следующим образом:
```python
import aiogram
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor

bot = Bot(token='YOUR_BOT_TOKEN')
dp = Dispatcher(bot)

last_messages = []

@dp.message_handler()
async def handle_new_message(message: types.Message):
    global last_messages
    
    if message.from_user.id not in [msg.from_user.id for msg in last_messages]:
        last_messages.append(message)
    else:
        if message.from_user.id != last_messages[-1].from_user.id:
            last_messages.clear()
        last_messages.append(message)
        
    if len(last_messages) == 2:
        await message.reply('Ваши сообщения приняты!')

if __name__ == '__main__':
    executor.start_polling(dp)
```

Вам также потребуется зарегистрировать своего бота и получить токен. Это можно сделать, обратившись к официальной документации Telegram Bot API.
Похожие вопросы