我正在使用python-telegram-bot
库在python中开发一个小机器人,但我遇到了一个小问题:
我有一个带有参数InlineKeyboardButton
的{{1}},因此当用户单击它时,会在其聊天记录中自动编写一个命令。
但是,在该命令之前会提到机器人(带有@)。
问题在于我的机器人在这种情况下没有响应,我也不知道为什么。
是否有解决方案,使按钮不以提及机器人的方式出现在命令之前?
从switch_inline_query_current_chat
开始,允许组,并且隐私组被关闭。
非常感谢
编辑:这是CommandHandler的代码:
@BotFather
这是按钮的代码:
def getEntry(update, context):
if not (is_allowed_user(update.message.from_user.username, 'getEntry')):
context.bot.send_message(chat_id=update.effective_chat.id,
text='Who the hell are you @' + update.message.from_user.username + ' ?')
return
search = ' '.join(context.args)
infos, err = get_infos_people(search)
if err is not None:
context.bot.send_message(chat_id=update.effective_chat.id, text=err)
return
context.bot.send_message(chat_id=update.effective_chat.id, text=beautify_infos(infos),
parse_mode=ParseMode.MARKDOWN, reply_markup=getMainKeyboard(infos))
get_handler = CommandHandler('get', getEntry, filters=~Filters.update.edited_message)
答案 0 :(得分:0)
注意::我不是python-telegram-bot专家,但是问题/修复程序应该与lib无关。
commandHandler()
定义如下:
get_handler = CommandHandler('get', getEntry, filters=~Filters.update.edited_message)
这会将/get
命令链接到getEntry
处理程序。
由于该命令仅在/get
处发出,因此您需要添加第二个命令,该命令的名称与漫游器名称相同,以便它也可以注册该命令; >
get_handler = CommandHandler([ 'get', 'get@myBot' ], getEntry, filters=~Filters.update.edited_message)
第一个参数(command
)接受str
或list
作为docs shows