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')