как передать сообщение в переменную?
import requests
import telebot
bot = telebot.TeleBot('')
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id, 'Кукусики, ')
@bot.message_handler(content_types=['text'])
def send_text(message):
a = bot.send_message(message.chat.id, 'Ваш город?')
url = 'http://wttr.in/' + a + '.png'
r = requests.get(url)
with open("weather.png", 'wb') as file:
file.write(r.content)
bot.send_photo(message.chat.id, "weather.png")
bot.polling()
Консоль выдает следующую ошибку, я пытаюсь получить сообщение от пользователя, а после передать в другую переменную обьеденив их.
url = 'http://wttr.in/' + a + '.png' TypeError: can only concatenate str (not "Message") to str
Ответы (1 шт):
Вы немного не поняли как это работает.
Во-первых вы обращаетесь к сообщению с вопросом, которое вы отправили. Во-вторых вы обращаетесь к объекту типа Message, которое содержит всю информацию о сообщении от текста до информации о прикреплённого файла.
Для того, что бы задать вопрос пользователю, надо воспользоваться bot.register_next_step_handler(a, функция для вызова), в указанною вами функцию будет передат 1 аргумент в котором будет сообщение с ответом от пользователя.
Для того, что бы получить из объекта Message текст сообщения надо прописать переменная.text, в переменной должно быть сообщение, в вашем случии аргумент из вашей функции.
Если нужны более подробные примеры по register_next_step_handler напишите в коменты, я для вас напишу.