Телеграмм Бот не реагирует на фотографию

Рейтинг: 0Ответов: 1Опубликовано: 16.03.2023

Пишу телеграмм бота на айограм. Не очень знаком с этой системой, поэтому пользуюсь прошлогодними ресурсами. Проблема в том, что нигде не могу найти ответа на свою проблему, а заключается она вот в чем.

Пишу админку для бота (бот нацелен на бизнес проект), соответственно он должен показывать некоторый товар пользователю, какой администратор соизволит внести в список. Но когда вносишь новый товар, на моменте отправки фотографии бот попросту не реагирует (то есть он просто молчит).

Вот так завел переменную под фотку:

class FSMAdmin(StatesGroup):
    photo_id = State()
    ...

Вот сама часть кода, отвечающая за фото:

#Начало диалога загрузки нового пункта меню
async def cm_start(message : types.Message):
    if message.from_user.id == ID:
        await FSMAdmin.photo_id.set()
        await message.reply('Загрузите фото')

#Ловим первый ответ и пишем в словарь
async def load_photo(message: types.Message, state: FSMContext):
    if message.from_user.id == ID:
        async with state.proxy() as data:
            data['photo_id'] = message.photo[0].file_id
        await FSMAdmin.next()
        await message.reply('Введите название')

#Ловим второй ответ
async def load_name(message: types.Message, state: FSMContext):
    if message.from_user.id == ID:
        async with state.proxy() as data:
            data['name'] = message.text
        await FSMAdmin.next()
        await message.reply("Введите описание товара (подробно)")

Так как код раскидан по разным папкам, то приходиться вызывать его через регистратор команды, вот он:

...
dp.register_message_handler(load_photo, commands = ['photo'], state = FSMAdmin.photo_id)
...

Пытался искать проблему и в создании бота, но все безуспешно. Вот конечный код, отвечающий за бота:

from aiogram import Bot
from aiogram.dispatcher import Dispatcher
from aiogram.contrib.fsm_storage.memory import MemoryStorage

storage = MemoryStorage()

bot = Bot(token = 'засекречено')
dp = Dispatcher(bot, storage = storage)

Кто-нибудь может подсказать, что делаю не так, потому что уже неделю не могу найти нужного для себя ответа? Ошибку не выдает, бот в онлайн выходит. Если понадобится еще какая часть кода, могу прислать. Пишу в Саблайм, в основном обращаюсь к этому уроку (Видеоурок, по которому писал код)

Ответы

▲ 0Принят

Возможно, проблема в том, что Вы указали команду /photo вместо content_types=['photo'] в аргументе регистратора.