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
我正在尝试在 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