Answer the question
In order to leave comments, you need to log in
How to fix "name 'message' is not defined" error in Telegram Bot?
Please tell me how to fix this error. I can't figure out where to define Message
import telebot #подключение библиотеки Телеграм бота
from telebot import types
token = 'Токен'
bot = telebot.TeleBot('Токен')
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id, 'Меня зовут бот. Чем могу вам помочь?', reply_markup=key)
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
bot.send_message(message.chat.id, 'К сожалению я еще не умею читать текст. Воспользуйтесь главным меню:', reply_markup=key)
markup = types.ReplyKeyboardMarkup()
markup.row('Калькулятор','Расписание')
markup.row('О нас','Помощь')
markup.row('Обратная связь')
bot.send_message(message.chat.id, "Выберите пункт меню:", reply_markup=markup) #На этом месте cmd определяет ошибку NameError: name 'message' is not defined
bot.polling(none_stop=True, interval=0)
Answer the question
In order to leave comments, you need to log in
So you don't have a message variable defined. Whats up.
Where do you want this message to apply? Put it in the /start function or get_text_messages
There's a lot wrong with that. This is how it would be better:
# -*- coding: utf-8 -*-
#^^^Если используешь русский текст указывай кодировку на всякий случай.
import telebot
from telebot import types
token = 'здесьможетбытьвашатокешка'
bot = telebot.TeleBot(token)
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id, 'Меня зовут бот. Чем могу вам помочь?') #Здесь не надо отсылать клавиатуру, тем более ту которая не создана!
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
kb = types.ReplyKeyboardMarkup()
kb.row('Калькулятор','Расписание')
kb.row('О нас','Помощь')
kb.row('Обратная связь')
bot.send_message(message.chat.id, 'К сожалению я еще не умею читать текст. Воспользуйтесь главным меню:', reply_markup=kb) #Отправка меню
#bot.send_message(message.chat.id, "Выберите пункт меню:", reply_markup=markup) - Эта строка вообще лишняя, главное меню отправляется строкой выше.
bot.polling(none_stop=True, interval=0)
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question