使用Python添加回调侦听器

2024-05-29 06:02:03 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用telegram-bot-python添加callbackurl侦听器

我得到这个错误:

Address already in use

代码:

app = Bottle()
PORT = int(os.environ.get('PORT', '8443'))
@app.route('/auth/')
def my_listener():..

PORT = os.environ.get('PORT')
updater.start_webhook(listen="0.0.0.0",
                          port=int(PORT),
                          url_path=token,
                          webhook_url=f"https://{herokuname}.herokuapp.com/{token}")
updater.idle()

Tags: tokenappurlgetosportbot错误
1条回答
网友
1楼 · 发布于 2024-05-29 06:02:03

我试过这个代码,它成功了

from flask import Flask, request
import os
import logging
import telegram
import time
from telegram import Update
from telegram.ext import CallbackContext, CommandHandler, Updater

logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(message)s', datefmt='%d-%b-%y %H:%M:%S')
logger = logging.getLogger("test")
token = "token"
herokuname = "name"
PORT = int(os.environ.get('PORT', '8443'))
updater = Updater(token, use_context=True)
bot = updater.bot
update_queue = updater.update_queue
dispatcher = updater.dispatcher

app = Flask(__name__)

@app.route('/' + token, methods=['POST'])
def webhook():
    update = telegram.update.Update.de_json(request.get_json(force=True), bot)
    logger.info(f"update id is : {update.update_id}")
    update_queue.put(update)
    return 'OK'


def start(update:Update, context:CallbackContext):
    update.message.reply_text("ok")



if __name__ == '__main__':
    dispatcher.add_handler(CommandHandler("start", start))
    updater._init_thread(dispatcher.start, "dispatcher")
    bot.set_webhook(f"https://{herokuname}.herokuapp.com/{token}")
    time.sleep(5)
    app.run(
        host="0.0.0.0",
        port=PORT,
        debug=True
    )

相关问题 更多 >

    热门问题