nonebot / nonebot2

跨平台 Python 异步聊天机器人框架 / Asynchronous multi-platform chatbot framework written in Python
https://nonebot.dev
MIT License
5.97k stars 555 forks source link

关于onebot通过群聊临时会话发送私聊消息的问题 #1248

Closed htharoldht closed 2 years ago

htharoldht commented 2 years ago

根据 #340 提出的方法进行实现,但是通过群聊发起临时会话的功能还是实现不了

下图是nonebot2日志 image

下图是go-cqhttp端日志 [2022-09-10 00:06:50] [WARNING]: 发送临时会话消息失败: 已关闭临时会话信息发送功能

该群机器人为管理员

yanyongyu commented 2 years ago

https://docs.go-cqhttp.org/guide/config.html#%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AF

account.allow-temp-session

huangdihd commented 1 year ago

在和其他人的临时会话发消息的时候会报以下错误:

03-17 17:15:03 [ERROR] nonebot | Running Matcher(type='message', module=src.plugins.sql) failed.
Traceback (most recent call last):
  File "<string>", line 17, in <module>
  File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/nonebot/__init__.py", line 273, in run
    get_driver().run(*args, **kwargs)
  File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/nonebot/drivers/fastapi.py", line 187, in run
    uvicorn.run(
  File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/uvicorn/main.py", line 568, in run
    server.run()
  File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/uvicorn/server.py", line 59, in run
    return asyncio.run(self.serve(sockets=sockets))
  File "/usr/lib/python3.8/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/nonebot/message.py", line 141, in _check_matcher
    await _run_matcher(Matcher, bot, event, state, stack, dependency_cache)
> File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/nonebot/message.py", line 187, in _run_matcher
    await matcher.run(bot, event, state, stack, dependency_cache)
  File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/nonebot/internal/matcher/matcher.py", line 732, in run
    await self.simple_run(bot, event, state, stack, dependency_cache)
  File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/nonebot/internal/matcher/matcher.py", line 707, in simple_run
    await handler(
  File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/nonebot/dependencies/__init__.py", line 108, in __call__
    return await cast(Callable[..., Awaitable[R]], self.call)(**values)
  File "/root/DS_qqbot/src/plugins/sql.py", line 74, in _
    await command1.finish(f"成功绑定玩家{username}")
  File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/nonebot/internal/matcher/matcher.py", line 481, in finish
    await cls.send(message, **kwargs)
  File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/nonebot/internal/matcher/matcher.py", line 466, in send
    return await bot.send(event=event, message=_message, **kwargs)
  File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/nonebot/adapters/onebot/v11/bot.py", line 220, in send
    return await self.__class__.send_handler(self, event, message, **kwargs)
  File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/nonebot/adapters/onebot/v11/bot.py", line 174, in send
    return await bot.send_msg(**params)
  File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/nonebot/internal/adapter/bot.py", line 120, in call_api
    raise exception
  File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/nonebot/internal/adapter/bot.py", line 98, in call_api
    result = await self.adapter._call_api(self, api, **data)
  File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/nonebot/adapters/onebot/v11/adapter.py", line 132, in _call_api
    return handle_api_result(await self._result_store.fetch(seq, timeout))
  File "/root/DS_qqbot/.venv/lib/python3.8/site-packages/nonebot/adapters/onebot/v11/utils.py", line 58, in handle_api_result
    raise ActionFailed(**result)
nonebot.adapters.onebot.v11.exception.ActionFailed: ActionFailed(data=None, echo='2', msg='SEND_MSG_API_ERROR', retcode=100, status='failed', wording='请参考 go-cqhttp 端输出')

但是go-cqhttp端并没有报错,消息发出去了,但是后面的代码并没有执行

yanyongyu commented 1 year ago

报错由gocq返回,这你得问gocq

huangdihd commented 1 year ago

我现在用try:,except ActionFailed:pass屏蔽了报错,gocq内边也没有回复