@Dimaniolla
Пытаюсь программировать, пока что неудачно.

Запуск Телеграм Бота на Pycharm?

Помогите, я новенькая, изучаю Питон.
Если запускать код через консоль - все отлично работает, но через Pycharm не выходит, я не знаю, что делать и как изменить это.

Код запускается, но ничего происходит, бот не реагирует.

# coding=utf-8
import telebot

from telebot import types

bot = telebot.TeleBot('токен вставляю правильный')

# Добавляем обработчик сообщений, который проверяет команды, в нашем случае это команда /start
@bot.message_handler(commands=['start','go'])
def startpg(message):
    # Создаем клавиатуру, с единственной кнопкой "Начать"
    startmenu = types.ReplyKeyboardMarkup(True, True)
    startmenu.row('Начать')
    # Отправляем сообщение и отправляем подключение клавиатуры
    bot.send_message(message.chat.id, 'Добро пожаловать!✋ \nЯ бесплатный образовательный бот!‍\nБлагодаря нашим курсам, вы сможете найти любимую профессию, научится зарабатывать деньги и просто обрести полезные навыки!', reply_markup=startmenu)

#Добавляем обработчик сообщений, который проверяет тип сообщения "Текст"
@bot.message_handler(content_types=['text'])
def osnov(message):
    # Проверяем какое сообщение нам пришло, на русском языке код выглядит так "Если текст который отправил пользователь РАВЕН СЛОВУ "Начать", то у нас будет выполняться это действие"
    if message.text == 'Начать':
        # Мы присваиваем переменной "send" метод "Отправка сообщения"
        send = bot.send_message(message.chat.id, 'Введите ваше имя:')
        # Здесь мы делаем следующий шаг, который изначально будет отправлять переменную "send", а потом переходит к следующей функции под названием "next1"
        bot.register_next_step_handler(send, next1)
    # Проверяем какое сообщение нам пришло, на русском языке код выглядит так "Если текст который отправил пользователь РАВЕН СЛОВУ "Бизнес", то у нас будет выполняться это действие"
    elif message.text == 'Бизнес':
        if biznes == 'biznes':
            # Создаем клавиатуру
            vibor1 = types.ReplyKeyboardMarkup(True, False)
            vibor1.row('Курс1')
            vibor1.row('Курс2')
            vibor1.row('Курс3')
            vibor1.row('Курс4')
            vibor1.row('Назад')
            # Отправляем сообщение и отправляем подключение клавиатуры
            bot.send_message(message.chat.id, 'Выберите курс:', reply_markup=vibor1)
    # Проверяем какое сообщение нам пришло, на русском языке код выглядит так "Если текст который отправил пользователь РАВЕН СЛОВУ "Программирование", то у нас будет выполняться это действие"
    elif message.text == 'Программирование':
        if biznes == 'biznes':
            # Создаем клавиатуру
            vibor2 = types.ReplyKeyboardMarkup(True, False)
            vibor2.row('C#')
            vibor2.row('Python')
            vibor2.row('C++')
            vibor2.row('Delphi')
            vibor2.row('Назад')
            # Отправляем сообщение и отправляем подключение клавиатуры
            bot.send_message(message.chat.id, 'Выберите язык программирования:', reply_markup=vibor2)
    # Проверяем какое сообщение нам пришло, на русском языке код выглядит так "Если текст который отправил пользователь РАВЕН СЛОВУ "Лайфаки", то у нас будет выполняться это действие"
    elif message.text == 'Лайфаки':
        if biznes == 'biznes':
            # Создаем клавиатуру
            vibor3 = types.ReplyKeyboardMarkup(True, False)
            vibor3.row('Лайфак1')
            vibor3.row('Лайфак2')
            vibor3.row('Лайфак3')
            vibor3.row('Лайфак4')
            vibor3.row('Назад')
            # Отправляем сообщение и отправляем подключение клавиатуры
            bot.send_message(message.chat.id, 'Выберите лайфак:', reply_markup=vibor3)
    # Проверяем какое сообщение нам пришло, на русском языке код выглядит так "Если текст который отправил пользователь РАВЕН СЛОВУ "Фитнес", то у нас будет выполняться это действие"
    elif message.text == 'Фитнес':
        if biznes == 'biznes':
            # Создаем клавиатуру
            vibor4 = types.ReplyKeyboardMarkup(True, False)
            vibor4.row('Питание')
            vibor4.row('Упражнения')
            vibor4.row('Пресс')
            vibor4.row('Фитнес клубы')
            vibor4.row('Назад')
            # Отправляем сообщение и отправляем подключение клавиатуры
            bot.send_message(message.chat.id, 'Выберите:', reply_markup=vibor4)
    # Проверяем какое сообщение нам пришло, на русском языке код выглядит так "Если текст который отправил пользователь РАВЕН СЛОВУ "Назал", то у нас будет выполняться это действие"
    elif message.text == 'Назад':
        # Так делается, для того, чтобы перейти к фукнции с назаваением "next2"
        next2(message)

# Создаем функцию, для того, чтобы ответить на первое сообщение "Введите ваше имя:"
def next1(message):
    # Мы присваиваем переменной "send" метод "Отправка сообщения"
    send = bot.send_message(message.chat.id, 'Очень приятно {name}, введите ваш возвраст:'.format(name=message.text))
    # Здесь мы делаем следующий шаг, который изначально будет отправлять переменную "send", а потом переходит к следующей функции под названием "next2"
    bot.register_next_step_handler(send, next2)

# Создаем функцию, для того, чтобы ответить на сообщение "Очень приятно {name},Введите ваш возвраст:"
def next2(message):
    global biznes
    biznes = 'biznes'
    # Создаем клавиатуру
    vibor = types.ReplyKeyboardMarkup(True, False)
    vibor.row('Бизнес')
    vibor.row('Программирование')
    vibor.row('Лайфаки')
    vibor.row('Фитнес')
    # Отправляем сообщение и отправляем подключение клавиатуры
    bot.send_message(message.chat.id, 'Хорошо, выберите тематику курсов?', reply_markup=vibor)


bot.polling()
  • Вопрос задан
  • 5819 просмотров
Пригласить эксперта
Ответы на вопрос 3
Lucian
@Lucian
https://t.me/BusinessAndFreelance
Что именно?
- Не запускается
- Ничего не печатает в консоль
- Выдает ошибку
Ответ написан
cellmon
@cellmon
Botviber
https://api.telegram.org поглядите открывается у вас?

если нет, можно не запускать
Ответ написан
@norbiqkek
Попробуйте в конце
bot.polling(none_stop=True)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы