python 中的 Telegram 对话机器人

Telegram Conversation bot in python

我正在尝试在 python 中创建一个对话电报机器人。 我正在尝试获得用户的回复并希望我的机器人回复他。 但是 bot 没有读取新消息,除非它继续发送先前的文本,即 bot 命令。

这是我正在使用的功能:

def start(bot, update):
    username = update['message']['chat']['first_name']
    chat_id = get_chat_id(update)

    message = f"Hi {username} my name is Xeniour_Bot...\nHow are you?"

    message_id = update['message']['message_id']
    bot.send_message(chat_id, message, reply_to_message_id=update.message.message_id)
    time.sleep(5)
    reply = update.message.text
    bot.send_message(chat_id, reply, reply_to_message_id=update.message.message_id)

这是我的主要功能:

def main():
    updater = Updater(botToken)
    dp = updater.dispatcher
    dp.add_handler(CommandHandler('start', start))
    updater.start_polling()
    updater.idle()


if __name__ == '__main__':
    main()

这是我得到的输出:

CommandHandler 的实现需要更正。默认的 MessageHandler 实现也丢失了(除非你没有复制问题)

def start(update, context):
   username = update['message']['chat']['first_name']
   chat_id = get_chat_id(update)
   ...

def main_handler(update, context):
  logging.info(f'update : {update}')
  msg = update.message.text
  update.message.reply_text('Just received: ' + update.message.text)


# message handler
dp.add_handler(CommandHandler('start', start))    
dp.add_handler(MessageHandler(Filters.text, main_handler)) 

一个很好的参考是 Telegram Python echo example