@KeTTle_07
Чайник каких ещё поискать нужно, учу python и js

Почему бот не отвечает на команды?

Залил своего бота на хостинг(хероку), но там он ведёт себя довольно странно, когда деплою его он отправляет сообщение "работаю", но не отвечает на команды, но если запускать просто в replit (виртуальная среда разработки) то всё работает без каких-либо багов

from flask import Flask, request
import os
import random
from telebot import types
import telebot
import pymongo
from pymongo import MongoClient

server = Flask(__name__)
TOKEN = ''
CONNECTION_STRING = ""
client = MongoClient(CONNECTION_STRING)
db = client['db_for_roz'] # название базы данных
collection = db['userDB'] # создаём коллекцию
bot = telebot.TeleBot(TOKEN)

bot.send_message(1895572923, 'работаю')#Вот это сообщение отправляется а дальше дело не идёт

def getIds(message):
  return message.chat.id, message.from_user.id

@bot.message_handler(content_types=['text'])
def commands(message):
    chat, from_user = getIds(message)
    if message.text == '/start':
        bot.send_message(chat, 'Введи /commands и /rand_num')
    elif message.text == '/commands':
        bot.send_message(from_user, 'Команды: \n /ready - для участия в розыгрыше \n /stat - кол-во участников')
    elif message.text == '/ready':
        user = {'id' : from_user}
        if collection.find_one(user) is None:
            bot.send_message(chat, 'Отлично, ты учавствуешь!')
            collection.insert_one(user)
        else:
            bot.send_message(chat, 'Ты уже участник')
    elif message.text == '/stat':
      all = list(collection.find())
      bot.send_message(chat, 'Кол-во участников: ' + str(len(all)))
    else:
        bot.send_message(from_user, text = "Я ещё не нейронка чтобы отвечать на любые вопросы, введи /commands чтобы увидеть список команд")


@server.route('/' + TOKEN, methods=['POST'])
def getMessage():
    json_string = request.get_data().decode('utf-8')
    update = telebot.types.Update.de_json(json_string)
    bot.process_new_updates([update])
    return "!", 200
@server.route("/")
def webhook():
    bot.remove_webhook()
    bot.set_webhook(url='https://test-sth01.heroku.com/' + TOKEN)
    return "!", 200
if __name__ == "__main__":
    server.run(host="0.0.0.0", port=int(os.environ.get('PORT', 5000)))


с @server.route('/' + TOKEN, methods=['POST']) и до конца писал не сам - откопал в интернете, уже не вспомню где
  • Вопрос задан
  • 200 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы