【发布时间】:2020-05-24 08:44:34
【问题描述】:
我需要像这样在回调数据中重新发送文件 ID:
cd1 = 'publish {}'.format(new_file_id)
cd2 = 'delayed 1 {} *'.format(new_file_id)
...
markup = types.InlineKeyboardMarkup(1)
btn1 = types.InlineKeyboardButton(text='Publish',
callback_data=cd1)
btn2 = types.InlineKeyboardButton(text='Delayed publication',
callback_data=cd2)
markup.add(btn1, btn2)
bot.edit_message_reply_markup(message.chat.id, msg.message_id, reply_markup=markup)
但是 file_id 的大小,我得到的是
new_file_id = msg.video_note.file_id
(https://github.com/eternnoir/pyTelegramBotAPI的标准方法) 超过允许的 callback_data 大小(1-64 字节)。
callback_data 的字符串的实际大小是 cd1 为 128 字节,cd2 为 132 字节。
file_id 看起来像 DQACAgIAAxkDAAIHZ14-nxWa7ckt2ZG7UQMrq_PuxIxRAAK4BQACzfj4SdBn7Y70cYWSGAQ,大小为 120 字节。
有什么想法吗?真的希望得到您的帮助。
【问题讨论】:
-
第一个想法是存储在像
id-telegram_file_id这样的数据库对中,所以id的大小会更小(最多32字节)。但这看起来不是好的(美容)解决方案。
标签: python telegram telegram-bot py-telegram-bot-api