В настоящее время я использую библиотеку python-telegram-bot
для создания бота-телеграммы. Моя проблема в том, что я пытаюсь заставить моего бота ответить при использовании встроенной команды. Поэтому, когда пользователь отправляет бота @botname 'text'
, я хочу сохранить 'text'
как string
, а затем заставить моего бота отправить что-то обратно с этой переменной.
По какой-то причине я не могу получить это на работу. Я попробовал приведенный ниже код, но он не работает ... Я также опубликовал пример с github, который работает, но не так, как я хочу.
Мой код
def inlinequery(update, context):
"""Handle the inline query."""
query = update.inline_query.query
text = query.message_text
print(text)
update.message.reply_text(text)
Пример кода
#Sends message when @botname is used
def inlinequery(update, context):
"""Handle the inline query."""
query = update.inline_query.query
results = [
InlineQueryResultArticle(
id=uuid4(),
title="Caps",
input_message_content=InputTextMessageContent(
query.upper())),
InlineQueryResultArticle(
id=uuid4(),
title="Bold",
input_message_content=InputTextMessageContent(
"*{}*".format(escape_markdown(query)),
parse_mode=ParseMode.MARKDOWN)),
InlineQueryResultArticle(
id=uuid4(),
title="Italic",
input_message_content=InputTextMessageContent(
"_{}_".format(escape_markdown(query)),
parse_mode=ParseMode.MARKDOWN))]
update.inline_query.answer(results)
def main():
# Get the dispatcher to register handlers
dp = updater.dispatcher
dp.add_handler(InlineQueryHandler(inlinequery))
# Start the Bot
updater.start_polling()
if __name__ == '__main__':
main()