python -telegram чат bot не присылает картинку в ответном письме

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

elif call.data == "key_typec":
        keyboard = types.InlineKeyboardMarkup()
        key1 = types.InlineKeyboardButton(text="Купить", callback_data="11")
        backbutton = types.InlineKeyboardButton(text="??Назад", callback_data="czy")
        keyboard.add(backbutton,key1)
         bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="выбирай раздел",reply_markup = keyboard)

        bot.send_photo(call.message.chat.id, open('c://123/file_11.jpg', 'rb'), caption="описание",
                       reply_markup = keyboard)

при добавление отправки фото появляется ошибка. Что делаю не так?

C:\Users\TECHNO\PycharmProjects\untitled2\venv\Scripts\python.exe C:/Users/TECHNO/PycharmProjects/untitled2/venv/bot.py
2020-07-15 21:48:28,765 (util.py:68 WorkerThread1) ERROR - TeleBot: "ApiException occurred, args=('A request to the Telegram API was unsuccessful. The server returned HTTP 400 Bad Request. Response body:\n[b\'{"ok":false,"error_code":400,"description":"Bad Request: there is no text in the message to edit"}\']',)
Traceback (most recent call last):
  File "C:\Users\TECHNO\PycharmProjects\untitled2\venv\lib\site-packages\telebot\util.py", line 62, in run
    task(*args, **kwargs)
  File "C:/Users/TECHNO/PycharmProjects/untitled2/venv/bot.py", line 110, in callback_inline
    reply_markup=keyboard)
  File "C:\Users\TECHNO\PycharmProjects\untitled2\venv\lib\site-packages\telebot\__init__.py", line 1090, in edit_message_text
    disable_web_page_preview, reply_markup)
  File "C:\Users\TECHNO\PycharmProjects\untitled2\venv\lib\site-packages\telebot\apihelper.py", line 682, in edit_message_text
    return _make_request(token, method_url, params=payload, method='post')
  File "C:\Users\TECHNO\PycharmProjects\untitled2\venv\lib\site-packages\telebot\apihelper.py", line 65, in _make_request
    return _check_result(method_name, result)['result']
  File "C:\Users\TECHNO\PycharmProjects\untitled2\venv\lib\site-packages\telebot\apihelper.py", line 84, in _check_result
    raise ApiException(msg, method_name, result)
telebot.apihelper.ApiException: A request to the Telegram API was unsuccessful. The server returned HTTP 400 Bad Request. Response body:
[b'{"ok":false,"error_code":400,"description":"Bad Request: there is no text in the message to edit"}']
"
2020-07-15 21:48:28,766 (__init__.py:443 MainThread) ERROR - TeleBot: "A request to the Telegram API was unsuccessful. The server returned HTTP 400 Bad Request. Response body:
[b'{"ok":false,"error_code":400,"description":"Bad Request: there is no text in the message to edit"}']"

Ответы (1 шт):

Автор решения: D. Violet

проверил ваш код. изменил путь к файлу и добавил elif - всё работает.

по нажатию кнопки key_typec сообщение изменяется на выбирай раздел [Назад] [Купить] и отправляется еще одно сообщение photo [Назад] [Купить].

при нажатии Назад в сообщении c фото - бот отправляет czy, так же как и при нажатии Назад в текстовом сообщении.

def callback_inline(call):
if call.data == "key_typec":
    key = types.InlineKeyboardMarkup()
    key1 = types.InlineKeyboardButton(text="Купить", callback_data="11")
    back = types.InlineKeyboardButton(text="Назад", callback_data="czy")
    key.add(back, key1)
    bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="выбирай раздел",
                          reply_markup=key)

    bot.send_photo(call.message.chat.id, open('files/123.png', 'rb'), caption="описание",
                   reply_markup=key)
elif call.data == 'czy':
    bot.send_message(call.message.chat.id, 'czy')
→ Ссылка