Пытаюсь осваивать создание ботов для телеграмм, и если в целом написание кода на питоне проблем не доставляет, да и с основами безопасности разобрался: спрятал персональные данные в переменные среды. Но вот при деплое столкнулся с нехваткой знаний.
Итак, код написан, с локальной машины запускается, аккаунт на гитхабе завел, репозитарий создал. Хостится решил на render.com, связал учетки гитахаба и рендера, казалось бы все супер, работает. Но не долго, wtf? Тут какие то порты... =D
В итоге бот отваливается по таймауту.
Я конечно изучаю документацию про порты на рендере, но пока слабо понимаю о чем речь. Да и в целом про модель osi обладаю лишь общими знаниями.
Для деплоя выбран эхо-бот помогающий принять сложные решения))
from dotenv import load_dotenv
import os
import json
import random
import telebot
import time
load_dotenv()
API_Token=(os.getenv('API_TOKEN'))
print(os.getenv('start_message')) #контроль запуска бота на локальной машине.
bot = telebot.TeleBot(API_Token)
answers = [
"Да", "Нет", "Возможно", "Вероятнее всего", "Сомневаюсь", "Определенно нет",
"Конечно", "Маловероятно", "Сложно сказать", "Скорее всего да"
]
@bot.message_handler(content_types=['text'])
def send_prediction(message):
bot.send_chat_action(message.chat.id, 'typing')
time.sleep(1)
prediction = random.choice(answers)
bot.reply_to(message, prediction)
bot.infinity_polling()
Возможно вместо infinity_polling() стоит использовать webhook, решит ли это проблему? При праивльной настройки вебхук конечно)