fix: wecom adapter returning json instead of plain text (#9107)

* Fix wecom adapter returning json instead of plain text

* Fix handle_verify return class
This commit is contained in:
Marshall
2026-07-02 23:27:08 +08:00
committed by GitHub
parent 70a52ea6d0
commit ea19be1d06
2 changed files with 6 additions and 2 deletions

View File

@@ -8,6 +8,7 @@ from pathlib import Path
from typing import Any, cast
from urllib.parse import unquote
from fastapi.responses import Response as FastAPIResponse
from requests import Response
from wechatpy.enterprise import WeChatClient, parse_message
from wechatpy.enterprise.crypto import WeChatCrypto
@@ -97,7 +98,7 @@ class WecomServer:
"""内部服务器的 GET 验证入口"""
return await self.handle_verify(request)
async def handle_verify(self, request) -> str:
async def handle_verify(self, request) -> FastAPIResponse:
"""处理验证请求,可被统一 webhook 入口复用
Args:
@@ -116,7 +117,7 @@ class WecomServer:
args.get("echostr"),
)
logger.info("验证请求有效性成功。")
return echo_str
return FastAPIResponse(content=echo_str, media_type="text/plain")
except InvalidSignatureException:
logger.error("验证请求有效性失败,签名异常,请检查配置。")
raise

View File

@@ -3,6 +3,7 @@ from __future__ import annotations
from typing import Any
from fastapi import APIRouter, Depends, Request
from fastapi.responses import Response
from astrbot.dashboard.asgi_runtime import DashboardRequest
from astrbot.dashboard.async_utils import run_maybe_async
@@ -50,6 +51,8 @@ def _model_dict(payload) -> dict[str, Any]:
async def _run(operation):
try:
result = await run_maybe_async(operation)
if isinstance(result, Response):
return result
return ok(result)
except PlatformServiceError as exc:
_raise_platform_error(exc)