如何在python Telegram bot对话处理程序中循环

问题描述

bot 运行一次后不会返回开始消息。

import logging
from config import TOKEN,hello_msg,key1_msg
import MysqL.connector
from telegram.ext import Filters,ConversationHandler,CommandHandler,MessageHandler,Filters,Updater,InlineQueryHandler,CallbackQueryHandler,CallbackContext
from telegram import InlineQueryResultArticle,InputTextMessageContent,InlineKeyboardButton,InlineKeyboardMarkup,Update

CHOOSING,CHOOSING2 = range(2)


keyboard1 = [
[InlineKeyboardButton("Welcome Message",callback_data = 'welcome_Message')],[InlineKeyboardButton("Commands",callback_data = 'Commands')],[InlineKeyboardButton("Links to our website",callback_data = 'links_to_our_websites')],[InlineKeyboardButton("Demo Try",callback_data = 'Demo_try')],[InlineKeyboardButton("register",callback_data = 'register')],[InlineKeyboardButton("Contact us",callback_data = 'Contact_us')]
]

def start(update: Update,context: CallbackContext):
    global up,cal
    up = update
    cal = CallbackContext
    context.bot.send_message(chat_id = update.effective_chat.id,text = hello_msg)
    reply_markup = InlineKeyboardMarkup(keyboard1)
    update.message.reply_text("please Choose: ",reply_markup = reply_markup)
    return CHOOSING

def button1(update: Update,context: CallbackContext):
    query = update.callback_query
    query.answer()
    answer = query.data
    context.bot.send_message(chat_id = update.effective_chat.id,text = key1_msg[answer])
    return CHOOSING


def main():
    updater = Updater(TOKEN,use_context=True)
    dp = updater.dispatcher

    new = ConversationHandler(entry_points = [CommandHandler("start",start)],states = {CHOOSING : [MessageHandler(Filters.regex('^(Welcome Message|Commands|Links to our website|Demo Try|register|Contact us)$'),start)]},fallbacks=[MessageHandler(Filters.regex('^start$'),sart)])

    dp.add_handler(new)
    dp.add_handler(CallbackQueryHandler(button1))
    updater.start_polling()
    updater.idle()

if __name__ == "__main__":
    main()

我想在用户从按钮中选择一个选项后立即再次运行启动命令... 我想学习如何在对话处理程序中提供处理程序时传递参数。 谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...