Написание комментариев под постом aiogram ботом

Делаю бота на aiogram 3.15, пишущего комментарий под новый пост в канале, но не понимаю, как проверять, является ли сообщение в чате-обсуждении постом из привязанного канала.

Буду очень благодарен за помощь


Ответы (1 шт):

Автор решения: пууеуце

введите сюда описание изображенияВерсия aiogram==3.0.0:

import logging
from aiogram import Bot, Dispatcher
from aiogram.types import Message

API_TOKEN = 'TOKEN'
CHAT_ID = ID  # ID чата, в который нужно отвечать
CHANNEL_ID = ID  # ID канала

# Configure logging
logging.basicConfig(level=logging.INFO)

# Initialize bot and dispatcher
bot = Bot(token=API_TOKEN)
dp = Dispatcher()

# Фильтрация сообщений и ответ на сообщения от канала
@dp.message()
async def reply_to_channel_post(message: Message):
    # Проверяем, что сообщение поступило в нужный чат и от нужного канала
    if message.chat.id == CHAT_ID and
       message.forward_from_chat  and 
       message.forward_from_chat.id == CHANNEL_ID:
        logging.info(f"Received a message from channel in the chat: "
                      "{message.message_id}")
        try:
            # Отправляем ответ на сообщение
            await message.reply(
                "Ответ на сообщение от канала"  # Ответ на сообщение
            )
            logging.info(f"Replied to message ID: {message.message_id}")
        except Exception as e:
            logging.error(f"Error replying to message: {e}")

# Main entry point
async def main():
    await dp.start_polling(bot)

if __name__ == '__main__':
    import asyncio
    asyncio.run(main())
→ Ссылка