如何解决电报从消息中添加和检索元数据
嗨,我正在寻找一种以最小的延迟来存储用户会话/元数据的方法,而这不会花费我很多时间。
简要问题描述。
我有一个机器人,可以帮助用户从Google云端硬盘下载文件。
它使用AWS lambda函数的Webhook。
为用户提供了可点击的文件名,例如
/File.pdf
一旦他们单击它,就需要将其下载并发送给用户。
问题是我需要一种方法来知道用户选择了什么文件,而不必使用数据库或按名称遍历我的所有文件。
例如,是否可以将元数据添加到可点击消息中?这样我就可以将该元数据添加到clickable中,如果用户单击/File.pdf,我将能够提取元数据。
解决方法
您可以发送in this example之类的InlineKeyboardButton,并根据需要在callback_data
中进行设置。当用户单击该按钮时,您的机器人将在更新中接收该数据:
button_list = [
InlineKeyboardButton("File1.pdf",callback_data="https://drive.google.com/invoice.pdf"),InlineKeyboardButton("File2.pdf",callback_data="https://drive.google.com/presentation.pdf"),InlineKeyboardButton("File3.pdf",callback_data="https://drive.google.com/report.pdf")
]
reply_markup = InlineKeyboardMarkup(button_list)
bot.send_message(chat_id=chat_id,"Files list:",reply_markup=reply_markup)
# in update handler:
def some_update_handler(update,context):
url = update.callback_query.data
# ...
# further processing
这在任何其他情况下也很有用,当Telegram机器人用户应该看到一些不错的消息,而看不到发送给Telegram机器人的一些内部值时。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。