在pythonanywhere.com上使用pyTelegramBotAPI和Flask提供的电报机器人webhook

在pythonanywhere.com上使用pyTelegramBotAPI和Flask提供的电报机器人webhook,flask,telegram,telegram-bot,pythonanywhere,py-telegram-bot-api,Flask,Telegram,Telegram Bot,Pythonanywhere,Py Telegram Bot Api,问题是关于在使用pyTelegramBotAPI模块的电报机器人中使用Webhook。 我正在使用pythonanywhere.com来托管bot 以下代码可以正常工作: from flask import Flask, request import telebot secret = "A_SECRET_NUMBER" bot = telebot.TeleBot ('YOUR_AUTHORIZATION_TOKEN') bot.set_webhook("https://YOUR_PYTHONA

问题是关于在使用pyTelegramBotAPI模块的电报机器人中使用Webhook。 我正在使用pythonanywhere.com来托管bot

以下代码可以正常工作:

from flask import Flask, request
import telebot

secret = "A_SECRET_NUMBER"
bot = telebot.TeleBot ('YOUR_AUTHORIZATION_TOKEN')
bot.set_webhook("https://YOUR_PYTHONANYWHERE_USERNAME.pythonanywhere.c..
}".format(secret), max_connections=1)

app = Flask(__name__)
@app.route('/{}'.format(secret), methods=["POST"])
def telegram_webhook():
   update = request.get_json()
   if "message" in update:
   text = update["message"]["text"]
   chat_id = update["message"]["chat"]["id"]
   bot.sendMessage(chat_id, "From the web: you said '{}'".format(text))
return "OK"
但是,当我使用如中所示的消息处理程序时,我没有收到来自bot的响应:

# Process webhook calls
@app.route(WEBHOOK_URL_PATH, methods=['POST'])
def webhook():
   if flask.request.headers.get('content-type') == 'application/json':
   json_string = flask.request.get_data().decode('utf-8')
   update = telebot.types.Update.de_json(json_string)
   bot.process_new_updates([update])
   return ''
else:
   flask.abort(403)

# Handle '/start' and '/help'
@bot.message_handler(commands=['help', 'start'])
   def send_welcome(message):
   bot.reply_to(message,
   ("Hi there, I am EchoBot.\n"
   "I am here to echo your kind words back to you."))

# Handle all other messages
@bot.message_handler(func=lambda message: True, content_types=['text'])
   def echo_message(message):
   bot.reply_to(message, message.text)
我试过不同图书馆的例子,但仍然没有答案

有什么想法吗

如果你能在pythonanywhere.com上分享一个电报“回声机器人”的工作示例,那就太好了


谢谢。

您应该在TeleBot构造函数中禁用线程,如下所示:

bot = telebot.TeleBot('YOUR_AUTHORIZATION_TOKEN', threaded=False)
我也遇到了同样的问题,并在这里找到了解决方案:

线程对免费的pythonywhere帐户不可用