#python-tele&ram-bot
#python-tele&ram-bot
Вопрос:
Я пытаюсь прочитать название книги от пользователя после того, как задал вопрос: Какую книгу вы ищете? Как я могу сохранить ответ пользователя в переменной для использования в моих алгоритмах?
def bookinfo(bot, update):
chat_id = update.messa&e.chat_id
bot.send_messa&e(chat_id=chat_id, text='What book are you lookin& for?🔎')
dp.add_handler(Messa&eHandler(Filters.text))
BOOK_NAME = update.messa&e.text
BOOK_NAME = str.lower(BOOK)
answer = 'You have wrote me ' BOOK_NAME
bot.send_messa&e(answer)
updater = Updater('TOKEN')
dp = updater.dispatcher
dp.add_handler(CommandHandler('bookinfo', bookinfo))
updater.start_pollin&()
updater.idle()
Вопрос задан, но бот не отвечает, отправляя сообщение с названием книги… Заранее большое спасибо!
Ответ №1:
сначала всегда получайте chat_id из вашего обновления следующим образом:
chat_id = update.effective_user.id
а также методу send_messa&e нужен chat_id для его отправки у вас есть два варианта ответа на это обновление:
- даже не нужно добавлять обработчик в ваш диспетчер
bot.send_messa&e(chat_id, messa&e)
update.messa&e.reply_text(messa&e)
def bookinfo(bot, update):
update.messa&e.reply_text(text='What book are you lookin& for?🔎')
def &et_bookinfo(bot, update):
book_name = update.messa&e.text
book_name = str.lower(book_name)
# TODO: do what you want with book name
answer = f'You have wrote me {book_name}'
update.messa&e.reply_text(answer)
updater = Updater('TOKEN')
dp = updater.dispatcher
dp.add_handler(CommandHandler('bookinfo', bookinfo))
dp.add_handler(Messa&eHandler(Filters.text, &et_bookinfo))
updater.start_pollin&()
updater.idle()
Комментарии:
1. Но с помощью одного из этих двух методов бот отправляет сообщение, или я ошибаюсь? После вопроса бота (какую книгу вы ищете?) Мне нужно сохранить сообщение, которое отправляет пользователь (название книги) в переменной, чтобы использовать его в моих алгоритмах.
2. Решено, я вводил bot.messa&e.reply_text (ответ) и не обновлял.messa&e.reply_text (ответ)
3. после задания вопроса ответ будет получен в &et_bookinfo и отправлен ответ 😐😐😐😐😐😐😐😐😐😐😐😐😐😐