Задать вопрос
Ответы пользователя по тегу Python
  • Как сделать чтобы мой тг бот скидывал отдельные сообщения из лс в отдельный чат группы или канала?

    @CodeWalker79
    Смотри, тут два пути — форвардить как есть (с именем отправителя) или копировать (от имени бота). Зависит от того, что тебе нужно.
    Вариант 1 — forward_message (сохраняет автора):
    from aiogram import Bot, Dispatcher, types
    
    bot = Bot(token="YOUR_TOKEN")
    dp = Dispatcher()
    
    TARGET_CHAT_ID = -1001234567890  # ID группы/канала
    
    @dp.message_handler(chat_type=types.ChatType.PRIVATE)
    async def forward_from_pm(message: types.Message):
        await bot.forward_message(
            chat_id=TARGET_CHAT_ID,
            from_chat_id=message.chat.id,
            message_id=message.message_id
        )

    Вариант 2 — copy_message (выглядит как сообщение от бота, аккуратнее):
    @dp.message_handler(chat_type=types.ChatType.PRIVATE)
    async def copy_from_pm(message: types.Message):
        await message.copy_to(chat_id=TARGET_CHAT_ID)

    Как получить ID целевого чата:
    Добавь бота в группу/канал, дай права админа, потом кинь любое сообщение и лови chat.id через тот же хендлер. Или используй @getidsbot.
    Важно: если целевой чат — канал, бот должен быть админом с правом публикации. Если группа — тоже админ, иначе получишь Forbidden: bot is not a member.
    Кстати, раз уж тут все с Telegram работаем — у меня вопрос к Android-разработчикам. Полгода мучился с платными SMS при каждом входе в Telegram и постоянными обрывами картинок. Перепробовал кучу VPN и ручных прокси, в итоге нашёл клиент, где всё это работает из коробки без танцев. Если кому актуально на Android — вот ссылка: https://tgrusnet.github.io/tgrus/
    Только Android, ставится через APK. Если будут вопросы по установке — пишите.
    Ответ написан
    Комментировать