如何从其他Telebot中选择一条消息?

皇家鹅

我正在为房地产中介制作机器人。Bot发送包含有关公寓信息的消息。Bot可以一次发送多个消息,供用户从中选择。如何执行选择消息之一的过程?当我在邮件上创建一个内联按钮时,当用户单击该按钮时,由于某种原因,最后一条消息的ID返回给该漫游器,也就是说,如果漫游器已使用“选择”按钮发送了三则消息,然后,当单击第一个时,将返回最后一个。我想这样做,以便例如用户可以回复一条消息,从而选择一个特定的消息,但是我不明白如何将用户的消息与他回复的消息相关联。我该如何做得更好?

阿里·帕迪达(Ali Padida)

当用户单击它时,由于某种原因,最后一条消息的ID将返回给机器人

如果您要发送3个包含内联按钮键盘的不同消息,则这不是预期的行为,单击任何按钮后,都会创建一个新的回调查询更新,其中包含用户也单击其按钮的消息ID。您应该检查一下以确保。

您需要的是callback_data

InlineKeyboardButton具有callback_data字段。那是专门为您准备的,您可以放入apartment_id callback_data,然后当用户单击任何按钮时,您还将收到,callback_data并且您将知道该apartment_id用户单击了哪个按钮。

您没有提到要使用哪个库,但是请在python库中检查此示例

def start(update: Update, context: CallbackContext) -> None:
    keyboard = [
        [
            InlineKeyboardButton("Option 1", callback_data='1'),
            InlineKeyboardButton("Option 2", callback_data='2'),
        ],
        [InlineKeyboardButton("Option 3", callback_data='3')],
    ]

    reply_markup = InlineKeyboardMarkup(keyboard)

    update.message.reply_text('Please choose:', reply_markup=reply_markup)
def button(update: Update, context: CallbackContext) -> None:
    query = update.callback_query

    # CallbackQueries need to be answered, even if no notification to the user is needed
    # Some clients may have trouble otherwise. See https://core.telegram.org/bots/api#callbackquery
    query.answer()

    query.edit_message_text(text="Selected option: {}".format(query.data))
def main():
    # Create the Updater and pass it your bot's token.
    # Make sure to set use_context=True to use the new context based callbacks
    # Post version 12 this will no longer be necessary
    updater = Updater("TOKEN", use_context=True)

    updater.dispatcher.add_handler(CommandHandler('start', start))
    updater.dispatcher.add_handler(CallbackQueryHandler(button))

在示例中,如果用户单击第一个按钮,Option 1query内部button功能将为“ 1”。如果他们点击第二个按钮Option 2,然后你会收到2query现在不是12你可以存储每间公寓的ID。如果您有用于多种用途的按钮,则可以使用短短语(例如apartment_id:1或)来区分它们close_button在处理更新时,您可以将查询分隔为:,如果split[0],则进行apartment_id处理,split[2]否则您将知道用户单击了其他按钮。

因此callback_data,有限的数据库可以解决此类问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

mySQL从每个对话中选择最后一条消息

来自分类Dev

如何在Cygwin中选择一条线

来自分类Dev

我如何在cakephp中获取用户与所有其他用户的最后一条消息

来自分类Dev

如何在屏幕上打印一条消息,然后重定向到其他页面 php/js

来自分类Dev

如何消费一条消息?

来自分类Dev

如何在LINQ GroupBy子句中选择最后一条记录

来自分类Dev

如何根据多个MAX条件在每个组中选择一条记录?

来自分类Dev

如何从内部查询中选择第一条记录?

来自分类Dev

如何从Cassandra中的时间序列中选择最后一条记录?

来自分类Dev

如何根据多个MAX条件在每个组中选择一条记录?

来自分类Dev

如何从其连接的两个顶点中选择一条边

来自分类Dev

如何使用SED从文件中选择一条记录行

来自分类Dev

如何在谷歌输入工具中选择最后一条建议

来自分类Dev

如何从mysql中选择记录以及以前的一条记录

来自分类Dev

如何在arraylist vb.net linq中选择一条记录

来自分类Dev

MySql-从18446744073709551615记录中选择一条记录

来自分类Dev

MySQL更新并在一条语句中选择

来自分类Dev

MySql-从18446744073709551615记录中选择一条记录

来自分类Dev

外键仅从表中选择一条记录

来自分类Dev

MySQL更新并在一条语句中选择

来自分类Dev

Oracle中选择一条记录的表

来自分类Dev

从行中选择上一条记录

来自分类Dev

选择每个对话的最后一条消息

来自分类Dev

如何根据 SQL 查询中其他聚合列的日期获取最后一条记录

来自分类Dev

是否有一条命令显示除Grails Fields插件选择的所有其他字段?

来自分类Dev

如何只向GIT提交一条消息?

来自分类Dev

如何使用AngularJS每秒显示一条消息?

来自分类Dev

如何检测GCM是否“折叠”了一条消息?

来自分类Dev

ngMessages:如何隐藏或显示另一条消息

Related 相关文章

  1. 1

    mySQL从每个对话中选择最后一条消息

  2. 2

    如何在Cygwin中选择一条线

  3. 3

    我如何在cakephp中获取用户与所有其他用户的最后一条消息

  4. 4

    如何在屏幕上打印一条消息,然后重定向到其他页面 php/js

  5. 5

    如何消费一条消息?

  6. 6

    如何在LINQ GroupBy子句中选择最后一条记录

  7. 7

    如何根据多个MAX条件在每个组中选择一条记录?

  8. 8

    如何从内部查询中选择第一条记录?

  9. 9

    如何从Cassandra中的时间序列中选择最后一条记录?

  10. 10

    如何根据多个MAX条件在每个组中选择一条记录?

  11. 11

    如何从其连接的两个顶点中选择一条边

  12. 12

    如何使用SED从文件中选择一条记录行

  13. 13

    如何在谷歌输入工具中选择最后一条建议

  14. 14

    如何从mysql中选择记录以及以前的一条记录

  15. 15

    如何在arraylist vb.net linq中选择一条记录

  16. 16

    MySql-从18446744073709551615记录中选择一条记录

  17. 17

    MySQL更新并在一条语句中选择

  18. 18

    MySql-从18446744073709551615记录中选择一条记录

  19. 19

    外键仅从表中选择一条记录

  20. 20

    MySQL更新并在一条语句中选择

  21. 21

    Oracle中选择一条记录的表

  22. 22

    从行中选择上一条记录

  23. 23

    选择每个对话的最后一条消息

  24. 24

    如何根据 SQL 查询中其他聚合列的日期获取最后一条记录

  25. 25

    是否有一条命令显示除Grails Fields插件选择的所有其他字段?

  26. 26

    如何只向GIT提交一条消息?

  27. 27

    如何使用AngularJS每秒显示一条消息?

  28. 28

    如何检测GCM是否“折叠”了一条消息?

  29. 29

    ngMessages:如何隐藏或显示另一条消息

热门标签

归档