首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python telegram-bot:提示另一个输入

Python telegram-bot:提示另一个输入
EN

Stack Overflow用户
提问于 2018-10-16 06:43:38
回答 1查看 381关注 0票数 3

我在Python中有一个机器人,它提示用户从ID列表中选择要更改的ID,其思想是用户选择ID,然后提供他们想要更改的ID。

下面是我的代码:

代码语言:javascript
复制
def build_menu(buttons, n_cols):
    menu = [buttons[i:i + n_cols] for i in range(0, len(buttons), n_cols)]
    return menu

def change_process(bot, update):
    global action
    query = update.callback_query
    NAME = query.data
    if action == 'Change':
        # Prompt user for new value
        # run sql query to update 

def change(bot, update, args):
    global action
    action = 'Change'
    sql = sqlite3.connect('SQL_FILE.db',detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES)
    cur = sql.cursor()
    button_list = [InlineKeyboardButton(s[0], callback_data=s[0]) for s in cur.execute('SELECT Name FROM ID ORDER BY Name ASC')]
    reply_markup = InlineKeyboardMarkup(build_menu(button_list, n_cols=3))
    update.message.reply_text('ID to change:', reply_markup=reply_markup)

action = None
updater = Updater(token='XXXX:XXXX')
dispatcher = updater.dispatcher

dispatcher.add_handler(CallbackQueryHandler(change_process))

arg_handler = CommandHandler('change', change, pass_args=True)
dispatcher.add_handler(arg_handler)

下面是我希望这个程序如何工作:

用户运行/change

Bot返回能够更改的ID列表(使用InlineKeyboardMarkup()build_menu()

用户选择其中一个ids

机器人提示用户输入新值

用户发送给机器人的下一条消息将是要使用的值

机器人将使用用户选择的ID以及新值,并在数据库中运行查询来更新

机器人评论说它用'USER VALUE‘的新值更新了ID

我遇到的问题是,我可以提示用户选择ID,也可以提示用户输入,但我不知道如何做到这两点并在一个函数中使用这两个值。

EN

回答 1

Stack Overflow用户

发布于 2020-07-15 19:04:13

我相信你需要看看python-telegram-bot库提供的conversation examples

还有一些图表解释了从用户请求数据的流程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52825676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档