1
質問は、pyTelegramBotAPIモジュールを使用してTelegramボットでWebhookを使用することです。 私は、botをホストするためにpythonanywhere.comを使用しています。pyTelegramBotAPIによるtelegram bot webhookとpythonanywhere.comでのFlask
次のコードは正常に動作します:
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でTelegram "echo-bot"の実際の例を共有できれば幸いです。
ありがとうございました。