簡體   English   中英

如何在 python-telegram-bot 中接收來自用戶的消息?

[英]How can I receive messages from users in python-telegram-bot?

我正在使用 python-telegram-bot

def delete(update: Update, context: CallbackContext) -> None:
    """delete account from database"""
    num = random.randrange(111111,999999)
    update.message.reply_text("Something to write here\n\n****" + str(num) + "****")
    time.sleep(10)
    if int(update.message.text) == num: #here update.message.text == '/cancel' and not the message user
        flag = delete_db(update.effective_user.id)
        if flag:
            update.message.reply_text('OK')
    else:
        update.message.reply_text('Something goes wrong or time is out')

如何強制更新消息? 我覺得是不是有問題...

根據電報社區的建議,我用一個帶有兩個 function 的會話處理程序解決了這個問題,一個用於啟動操作,第二個用於確認。

在定義主要:

dispatcher.add_handler(
        ConversationHandler(
            entry_points = [MessageHandler(Filters.regex('^Cancel$'), delete)],
            states = {
                DELETE: [MessageHandler(Filters.text, random_number)],
            },
            fallbacks = [None], # here you can enter an /end function to break the process
            conversation_timeout = 30,
        ),
    )

啟動 function '刪除':

def delete(update: Update, context: CallbackContext):
    update.message.reply_text('some message')
    CallbackContext.chat_data = random.randrange(111111,999999)
    update.message.reply_text("some other message\n*" + str(CallbackContext.chat_data) + "*")
    return DELETE

function 保留字符串消息並與生成的隨機數進行比較:

def random_number(update: Update, context: CallbackContext):
    try:
        user_action = int(update.message.text)
        if user_action == CallbackContext.chat_data:
            #flag = delete_db(update.effective_user.id) # function to delete from database
            if flag:
                update.message.reply_text('Okay done')
        else:
            update.message.reply_text('Wrong number')
    except:
        update.message.reply_text('failed')    
    return ConversationHandler.END

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM