как передать сообщение в переменную?

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 шт):

Автор решения: farkon00

Вы немного не поняли как это работает.

Во-первых вы обращаетесь к сообщению с вопросом, которое вы отправили. Во-вторых вы обращаетесь к объекту типа Message, которое содержит всю информацию о сообщении от текста до информации о прикреплённого файла.

Для того, что бы задать вопрос пользователю, надо воспользоваться bot.register_next_step_handler(a, функция для вызова), в указанною вами функцию будет передат 1 аргумент в котором будет сообщение с ответом от пользователя.

Для того, что бы получить из объекта Message текст сообщения надо прописать переменная.text, в переменной должно быть сообщение, в вашем случии аргумент из вашей функции.

Если нужны более подробные примеры по register_next_step_handler напишите в коменты, я для вас напишу.

→ Ссылка