1

问题是关于在使用pyTelegramBotAPI模块的Telegram bot中使用webhooks。 我正在使用pythonanywhere.com来托管机器人。pythonanywhere.com上使用pyTelegramBotAPI和Flask的Telegram bot webhook

下面的代码工作正常:

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" 

但是当我使用消息处理程序如图所示example,我没有收到答案从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上共享一个电报“echo-bot”的工作示例,那将非常棒。

感谢。

回答