webhooks with flask and python telegram bot on python anywhere

1wnzp6jl  于 2023-06-25  发布在  Python
关注(0)|答案(1)|浏览(130)

我有麻烦让webhooks工作。我有一个服务器运行在pythonanywhere上。我用正确的提示设置run_webhooks()。当我使用命令eg /start时,它会将请求发送到服务器,但它没有响应/工作。我正在使用flask,python电报机器人和python任何地方

class TeleBot:
def __init__(self):
    self.bot_api = bot_api
    self.application = ApplicationBuilder().token(self.bot_api).build()

def addhandler(self):
    start_handler = CommandHandler('start', self.start, filters=filters.COMMAND)

    self.application.add_handler(start_handler)
    print('added')

    self.application.run_webhook(
            listen='0.0.0.0',
            port=8443,
            url_path='',
            secret_token='secretphrase',
            key='private.key',
            webhook_url=f'https://api.telegram.org/bot{bot_api}/setWebhook?url=https://{my_username}.pythonanywhere.com/',
        )

async def start(self, update, context):
    print('ping')
    chat_id = update.effective_chat.id
    await context.Bot.sendMessage(chat_id=chat_id, text='Hey')

if __name__ == '__main__':
    telebot = TeleBot()
    telebot.addhandler()

服务器日志:“POST / HTTP/1.1”200 17“-”“-”
所以当我做/开始的时候,它正确地接收了post请求,但是它没有从那里发送消息或其他任何东西

cgyqldqp

cgyqldqp1#

这不是webhook_url的填充方式。你应该传递webhook_url=f"https://{my_username}.pythonanywhere.com/",即Telegram应将更新发送到URL。请务必阅读PTB wiki page on webhooks。出于调试目的,您可能需要
1.在调试时设置日志记录级别
1.手动调用getWebhookInfo
context.wizardBot似乎是未定义的。
否认:我目前是python-telegram-bot的维护者。

相关问题