我正在用python-telegram-bot编写Python Telegram Bot。
我创建了一个自定义内联菜单。
我希望用户可以按一个按钮并获得图片。
send_photo
函数需要bot实例进行更新。
但是我现在不知道如何通过CallBackQuerry
处理程序
有人知道如何解决吗?
发送照片功能:
def gvu(bot, update):
bot.send_photo(update.message.chat_id, photo=open('botpic/gvu.jpg', 'rb'))
主要例程中的处理程序:
updater.dispatcher.add_handler(CallbackQueryHandler(pattern="1", callback=gvu))
return self.callback(dispatcher.bot, update, **optional_args)
错误:
TypeError:callback_handler()获得了意外的关键字参数 'chat_data'
答案 0 :(得分:1)
这对我有用:
buttonsMenu = [
[telegram.InlineKeyboardButton("UP", callback_data="UpVote")],
[telegram.InlineKeyboardButton("DOWN", callback_data="DownVote")],
]
keyboard_markup = telegram.InlineKeyboardMarkup(buttonsMenu)
context.bot.sendPhoto(chat_id=update.message.chat.id, photo=open('./imgpath.jpg'), 'rb'),caption='messageText', reply_markup=keyboard_markup)
这将发送一个图像,在文本msg下方带有文本和2个按钮。
现在用于回调查询,我在main()中做到了
# Callbacks for the msg buttons
dp.add_handler(CallbackQueryHandler(vote, pattern="UpVote"))
dp.add_handler(CallbackQueryHandler(vote, pattern="DownVote"))
在表决中,def是运行我要用于该回调的代码的def。 希望有道理。
答案 1 :(得分:0)