Написание комментариев под постом aiogram ботом
Делаю бота на aiogram 3.15, пишущего комментарий под новый пост в канале, но не понимаю, как проверять, является ли сообщение в чате-обсуждении постом из привязанного канала.
Буду очень благодарен за помощь
Ответы (1 шт):
Автор решения: пууеуце
→ Ссылка
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())
