问题的原因是由于Webhooks不同于常规长轮询方式,因此需要进行一些配置。
以下是一些调试和可能的修复措施:
以下是一个简单的 aiogram bot 在 Webhooks 设定下的示例:
from aiogram import Bot, Dispatcher, types
from aiogram.dispatcher.webhook import SendMessage
from aiogram.dispatcher import FSMContext
from aiogram.types import ParseMode
import os
from aiohttp import web
TOKEN = os.getenv('TOKEN')
WEBHOOK_HOST = os.getenv('WEBHOOK_HOST')
WEBHOOK_PATH = '/webhook/'
WEBAPP_HOST = '0.0.0.0'
WEBAPP_PORT = os.getenv('PORT') or 3000
bot = Bot(TOKEN, parse_mode=ParseMode.HTML)
dp = Dispatcher(bot)
async def webhook(request):
if request.path == WEBHOOK_PATH:
update = types.Update.de_json(await request.json())
await dp.process_update(update)
return web.Response(text='ok')
else:
return web.Response(text='invalid request')
dp.register_message_handler(echo, commands=['start'])
async def echo(message: types.Message):
await SendMessage(message.chat.id, text='你好!这是一个Echo bot!').send()
async def on_shutdown(dp):
await bot.close()
await