@chochocho

Как сделать webhook в телеграм боте и поставить его на хостинг?

Использую библиотеку Telebot. Пришло время ставить бота на хост (Хочу использовать Pythonanywhere). Сейчас бот работает на bot.polling(), хочу перекинуть его на Webhook, но посмотрев документацию ничего не понял, как именно это сделать.
Подскажите, как сделать webhook и как его закинуть на хостинг?
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
В секрет свою какую нибудь строку, чтобы кто не надо не тыкал лишний раз.
Сначала надо удалить хук, вдруг уже есть, затем заново привязать. username - имя на pythonanywhere
Потом вешаем хук.
secret = '43d2yIyIVM'
username = 'user'

bot.remove_webhook()
time.sleep(1)
bot.set_webhook(url='https://{}.pythonanywhere.com/{}'.format(username, secret))

app = Flask(__name__)


Потом вешается обработчик фласка, на него приходят апдейты и передаются в telebot
@app.route('/{}'.format(secret), methods=["POST"])
def webhook():
    bot.process_new_updates([telebot.types.Update.de_json(request.stream.read().decode("utf-8"))])
    return 'ok', 200


Остальное - то же самое, разве что bot.pollin() естественно нет
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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