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

    @ProKraster
    Не помню, чтобы там был такой метод. Но один из вариантов, делать это через telethon

    client = TelegramClient('bot', api_id, api_hash).start(bot_token=bot_token)
    
    async def change_bot_avatar():
        # Загружаем новое фото профиля
        file = await client.upload_file(photo_path)
        
        # Устанавливаем новое фото как аватарку
        await client(UploadProfilePhoto(file=file)
    Ответ написан
    Комментировать
  • Как исправить ошибку?

    @ProKraster
    используй метод InputFile, и будет тебе счастье

    image_path = InputFile(download_image(image_url))
    Ответ написан
    Комментировать
  • Как сделать, чтобы в телеграм-боте при открытии выбапа вылезало соглашение с правилами?

    @ProKraster
    В самом @botfather это нужно настраивать
    Ответ написан
    Комментировать
  • Telegram server says - Bad Request: can't parse entities: Unsupported start tag "class" at byte offset 48 что означает ошибка и как её решить?

    @ProKraster
    Судя по всему ты отправляешь эти фото с описанием, тут ошибка тега, то-есть в тексте где-то есть тег class, который не обрабатывается телеграмом, из-за чего возникает ошибка
    Ответ написан
  • Превышен тамаут семафора, что делать?

    @ProKraster
    100% проблема в токене бота, поменяй токен, и должно заработать
    Ответ написан
    Комментировать
  • Как внедрить прокси в aiogram?

    @ProKraster
    Для этого понадобиться библиотека aiohttp-socks, вот сам код, из моего старого проекта.

    from aiogram import Bot, Dispatcher
    from aiohttp import ClientSession
    from aiohttp_socks import ProxyConnector
    
    API_TOKEN = 'YOUR_API_TOKEN'
    PROXY_URL = 'socks5://username:password@proxy_server:port'  # Замените данные прокси
    
    async def create_bot():
        # Создаем прокси-коннектор
        connector = ProxyConnector.from_url(PROXY_URL)
    
        # Создаем сессию с прокси
        session = ClientSession(connector=connector)
    
        # Создаем бота с сессией через прокси
        bot = Bot(token=API_TOKEN, session=session)
        dp = Dispatcher()
    
        return bot, dp
    
    async def main():
        bot, dp = await create_bot()
    
        @dp.message(commands=['start'])
        async def start_command(message):
            await message.answer("Привет! Это бот с поддержкой прокси.")
    
        # Запускаем поллинг
        await dp.start_polling(bot)
    
    if __name__ == '__main__':
        import asyncio
        asyncio.run(main())
    Ответ написан
    Комментировать
  • Как получить callback_data из апдейта в aiogram?

    @ProKraster
    Вот тебе два решения, для aiogram 2x и 3x

    aiogram 2x
    from aiogram import types
    from aiogram.dispatcher.middlewares import BaseMiddleware
    
    class CallbackDataMiddleware(BaseMiddleware):
        async def on_pre_process_callback_query(self, callback_query: types.CallbackQuery, data: dict):
            # Здесь можно получить callback_data
            callback_data = callback_query.data
            # Добавляем callback_data в data, чтобы оно было доступно в хендлере
            data['callback_data'] = callback_data
            print(f"Callback Data: {callback_data}")


    aiogram 3x
    from aiogram import BaseMiddleware
    from aiogram.types import CallbackQuery
    
    
    class CallbackDataMiddleware(BaseMiddleware):
        async def __call__(self, handler, event: CallbackQuery, data: dict):
            # Здесь мы можем извлечь callback_data
            callback_data = event.data
            data['callback_data'] = callback_data
            print(f"Callback Data: {callback_data}")
            return await handler(event, data)
    Ответ написан
    Комментировать
  • Как вставить ссылку в текст сообщения от бота в aiogram 2.2?

    @ProKraster
    f'<a href="{message.from_user.url}">{message.from_user.full_name}</a>'
    Ответ написан
    Комментировать