M
M
manmai2020-07-04 14:45:07
Python
manmai, 2020-07-04 14:45:07

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

2 answer(s)
S
soremix, 2020-07-04
@SoreMix

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

S
SuckMyPython, 2020-07-06
@SuckMyPython

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 question

Ask a Question

731 491 924 answers to any question