Python Telegram Bot - как обновить текст последнего сообщения, отправленного моим ботом

Я использую python-telegram-bot (python-telegram-bot.org) для связи с Telegram из Python3

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

def echo(bot, update):
    update.message.reply_text("Sorry, you're on your own, kiddo.")
    time.sleep(5)
    update.message.reply_text("Seriously, you're on your own, kiddo.")

Вместо этого я бы хотел обновить последнее сообщение.

Я пытался

bot.editMessageText("Seriously, you're on your own, kiddo.",
                   chat_id=update.message.chat_id,
                   message_id=update.message.message_id)

который работает в примерах для обновления, заменяет встроенную клавиатуру сообщением, но это дает сбой (и не обновляет последнее сообщение, которое я отправил как бот).

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
6 465
1

Ответы 1

Я считаю, что порядок ваших аргументов в edit_message_text() неправильный. Посмотрите документы для этого:

def echo(bot, update):
    # Any send_* methods return the sent message object
    msg = update.message.reply_text("Sorry, you're on your own, kiddo.")
    time.sleep(5)
    # you can explicitly enter the details
    bot.edit_message_text(chat_id=update.message.chat_id, 
                          message_id=msg.message_id,
                          text = "Seriously, you're on your own, kiddo.")
    # or use the shortcut (which pre-enters the chat_id and message_id behind)
    msg.edit_text("Seriously, you're on your own, kiddo.")

Документы для ярлыка message.edit_text() - здесь.

Спасибо. Я попробую это и прокомментирую успех.

576i 17.04.2018 15:25

у тебя получилось? @ 576i

M.K 25.02.2019 09:22

Другие вопросы по теме