提及时电报漫游器没有响应

时间:2020-06-07 08:57:08

标签: python bots telegram telegram-bot python-telegram-bot

我正在使用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)

1 个答案:

答案 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)接受strlist作为docs shows


在其他一些库中也有同样的问题,请不要认为有“更清洁”的方式来处理此问题。