Skip to content

调用 bot.edit_message_text 函数出现报错 <ActionFailed Bad Request: business connection not found> #78

@KirroNeko

Description

@KirroNeko

环境
OS: Debian 12
Python: 3.11.2

问题影响的版本
0.1.0b18 - 0.1.0b19

问题描述
在使用Telegram bot api的第三方API Client时,调用bot.edit_message_text时会报错,并且执行失败。
报错信息:
无论是否使用api_server,问题依然存在。

简单代码复现

from nonebot import on, on_command
from nonebot.adapters.telegram import Bot
from nonebot.adapters.telegram.event import CallbackQueryEvent, Event
from nonebot.adapters.telegram.model import (
    InlineKeyboardButton,
    InlineKeyboardMarkup
)

@on_command('test').handle()
async def _(bot: Bot, event: Event):
    inline_keyboard = [[InlineKeyboardButton(text=f"Click >>",callback_data='changetext')]]
    await bot.send_to(event.telegram_model.message.chat.id, 'bot.edit_message_text Test', 
                      reply_markup=InlineKeyboardMarkup(inline_keyboard=inline_keyboard))

@on("inline").handle()
async def _(bot: Bot, event: CallbackQueryEvent):
    if event.data == 'changetext':
        await bot.edit_message_text("Hello World!", 
                                    event.message.chat.id, event.message.message_id)
        await bot.answer_callback_query(event.id, text="Hello World!")

报错信息

11-12 16:48:58 [SUCCESS] nonebot | Telegram * | [inline.callback_query]: CallbackQuery * from *: changetext
11-12 16:48:58 [DEBUG] nonebot | Checking for matchers in priority 1...
11-12 16:48:58 [INFO] nonebot | Event will be handled by Matcher(type='inline', module=*.plugins.inline, lineno=15)
11-12 16:48:58 [DEBUG] nonebot | Running Matcher(type='inline', module=*.plugins.inline, lineno=15)
11-12 16:48:58 [DEBUG] nonebot | Running handler Dependent(call=_)
11-12 16:48:59 [DEBUG] nonebot | Telegram | Calling API editMessageText
11-12 16:48:59 [DEBUG] nonebot | Telegram | Calling API {'text': 'Now edit_message_text. Hello World!', 'business_connection_id': '*', 'chat_id': '*'}
11-12 16:48:59 [INFO] nonebot | Matcher(type='inline', module=*.plugins.inline, lineno=15) running complete
11-12 16:48:59 [ERROR] nonebot | Running Matcher(type='inline', module=*.plugins.inline, lineno=15) failed.
Traceback (most recent call last):
  File "<string>", line 15, in <module>
  File ".venv/lib/python3.11/site-packages/nonebot/__init__.py", line 337, in run
    get_driver().run(*args, **kwargs)
  File ".venv/lib/python3.11/site-packages/nonebot/drivers/fastapi.py", line 188, in run
    uvicorn.run(
  File ".venv/lib/python3.11/site-packages/uvicorn/main.py", line 579, in run
    server.run()
  File ".venv/lib/python3.11/site-packages/uvicorn/server.py", line 65, in run
    return asyncio.run(self.serve(sockets=sockets))
  File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
  File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
  File ".venv/lib/python3.11/site-packages/nonebot/utils.py", line 254, in run_coro_with_shield
    return await coro
  File ".venv/lib/python3.11/site-packages/nonebot/message.py", line 506, in check_and_run_matcher
    await _run_matcher(
> File ".venv/lib/python3.11/site-packages/nonebot/message.py", line 458, in _run_matcher
    await matcher.run(bot, event, state, stack, dependency_cache)
  File ".venv/lib/python3.11/site-packages/nonebot/internal/matcher/matcher.py", line 900, in run
    await self.simple_run(bot, event, state, stack, dependency_cache)
  File ".venv/lib/python3.11/site-packages/nonebot/internal/matcher/matcher.py", line 837, in simple_run
    await handler(
  File ".venv/lib/python3.11/site-packages/nonebot/dependencies/__init__.py", line 113, in __call__
    return await cast(Callable[..., Awaitable[R]], self.call)(**values)
  File "*/plugins/inline.py", line 18, in _
    await bot.edit_message_text("Now edit_message_text. Hello World!",
  File ".venv/lib/python3.11/site-packages/nonebot/adapters/telegram/bot.py", line 103, in call_api
    await super().call_api(api, **kargs)
  File ".venv/lib/python3.11/site-packages/nonebot/internal/adapter/bot.py", line 176, in call_api
    raise exception
  File ".venv/lib/python3.11/site-packages/nonebot/internal/adapter/bot.py", line 128, in call_api
    result = await self.adapter._call_api(self, api, **data)
  File ".venv/lib/python3.11/site-packages/nonebot/adapters/telegram/adapter.py", line 248, in _call_api
    raise ActionFailed(json.loads(response.content)["description"])
nonebot.adapters.telegram.exception.ActionFailed: <ActionFailed Bad Request: business connection not found>
11-12 16:48:59 [DEBUG] nonebot | Checking for matchers completed
11-12 16:49:29 [DEBUG] nonebot | Telegram | Calling API getUpdates

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions