0

正如标题中所说,我在telebot本地使用作为一个应用程序,Flask其中包含一个从ngrok.

脚本刚刚启动,一切正常,但是大约 30-60 分钟不活动(没有来自用户的新消息)脚本仍然正确接收 POST 消息,但机器人不再应答,我必须重新启动烧瓶应用程序。

我认为这可能是我对 Telegram API 不了解的事情,因为我认为 Flask 或 ngrok 传入的 POST 消息没有问题......

这是主要代码:

from flask import Flask, request
import telebot
import threading
from time import sleep
import os
import art
from telebot import types
from telebot.types import InlineKeyboardButton, InlineKeyboardMarkup, ReplyKeyboardMarkup, KeyboardButton
from datetime import datetime
from colorama import Fore, init, Style
from pyngrok import ngrok
import logging

https_tunnel = str(ngrok.connect("80", bind_tls=True)).split('"')[1]

bot = telebot.TeleBot(MYTOKENHERE)
bot.set_webhook(url=https_tunnel)
app=Flask(__name__)

@app.route('/', methods=["POST"])
def webhook():
    bot.process_new_updates(
        [telebot.types.Update.de_json(request.stream.read().decode("utf-8"))]
    )
    return "ok"

@bot.message_handler(commands=['start'])
def command_start(message):
   #MY STARTING ROUTINE HERE

@bot.callback_query_handler(func=lambda call: True)
def call_routine(call):
   #MY CALLBACK ROUTINE HERE


if __name__ == "__main__":
    app.run(port=80)
4

0 回答 0