Как захостить телеграмм бота aiogram?

Ссылка скопирована
1 ответ

Добрый день, пытаюсь запустить код, отлично работающий в Pycharm, но не работающий на сервере. Сервер ругается именно на эту часть.

@dp.callback_query(ClientState.QUESTION_1, F.data == 'try again') @dp.callback_query(F.data == 'want to see') async def question_1(callback: CallbackQuery, state: FSMContext):      album = MediaGroupBuilder()          photo_1 = FSInputFile(path='content/images/q_1_right.jpg')     photo_2 = FSInputFile(path='content/images/q_1_1.jpg')     photo_3 = FSInputFile(path='content/images/q_1_2.jpg')     album.add_photo(media=photo_1)     album.add_photo(media=photo_2)     album.add_photo(media=photo_3, caption=question_1_text)      await bot.send_media_group(media=album.build(), chat_id=callback.message.chat.id)

@dp.callback_query(ClientState.QUESTION_1, F.data == 'try again') @dp.callback_query(F.data == 'want to see') async def question_1(callback: CallbackQuery, state: FSMContext): album = MediaGroupBuilder() photo_1 = FSInputFile(path='content/images/q_1_right.jpg') photo_2 = FSInputFile(path='content/images/q_1_1.jpg') photo_3 = FSInputFile(path='content/images/q_1_2.jpg') album.add_photo(media=photo_1) album.add_photo(media=photo_2) album.add_photo(media=photo_3, caption=question_1_text) await bot.send_media_group(media=album.build(), chat_id=callback.message.chat.id)

aiogram.exceptions.TelegramNetworkError: HTTP Client says - ClientOSError: [Errno 2] Can not write request body for https://api.telegram.org/bot7055015851:AAGwKqPmSsm...
Насколько я понял он ругается на отсутствие media в send_media_group? Путь к фотографиям указан правильный.

Дополнительно:

Ответы:

Права на папку дайте.. нет прав для записи файлов

Can not write request body

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Виктор Sys Ответ

Для хостинга телеграмм бота, созданного с использованием библиотеки aiogram, необходимо выполнить следующие шаги:

1. Регистрация бота в Telegram и получение токена. Для этого нужно обратиться к @BotFather в Telegram и создать нового бота, следуя инструкциям. Полученный токен необходимо сохранить.

2. Создание сервера для хостинга. Можно использовать облачный хостинг (например, Heroku, AWS, Google Cloud) или собственный сервер.

3. Установка необходимых зависимостей. В файле requirements.txt указываются все зависимости, необходимые для работы бота. Для aiogram это будет примерно следующее:

aiogram

aiogram

4. Создание основного файла бота. В нем необходимо импортировать библиотеку aiogram и создать экземпляр класса Bot с указанием токена:

from aiogram import Bot, Dispatcher, types
from aiogram.contrib.middlewares.logging import LoggingMiddleware
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram.dispatcher.filters import Command
from aiogram.types import ParseMode, CallbackQuery
from aiogram.utils import executor
from aiogram.utils.callback_data import CallbackData
 
bot = Bot(token="YOUR_BOT_TOKEN")

from aiogram import Bot, Dispatcher, types from aiogram.contrib.middlewares.logging import LoggingMiddleware from aiogram.dispatcher import FSMContext from aiogram.dispatcher.filters.state import State, StatesGroup from aiogram.dispatcher.filters import Command from aiogram.types import ParseMode, CallbackQuery from aiogram.utils import executor from aiogram.utils.callback_data import CallbackData bot = Bot(token="YOUR_BOT_TOKEN")

5. Настройка обработчиков команд и сообщений бота. В файле с основным кодом бота нужно создать обработчики для различных событий, например:

@dp.message_handler(commands=['start'])
async def start_command(message: types.Message):
    await message.answer("Hello! I am your bot.")
 
@dp.message_handler()
async def echo_message(message: types.Message):
    await message.answer(message.text)

@dp.message_handler(commands=['start']) async def start_command(message: types.Message): await message.answer("Hello! I am your bot.") @dp.message_handler() async def echo_message(message: types.Message): await message.answer(message.text)

6. Запуск бота. Для запуска бота достаточно вызвать функцию start_polling() у объекта Dispatcher:

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

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

7. Деплой бота на сервер. Загружаем все файлы на сервер, устанавливаем зависимости из requirements.txt и запускаем бота.

Теперь ваш телеграмм бот, созданный с использованием aiogram, должен успешно работать на хостинге.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно