Open KomeiDiSanXian opened 2 months ago
OneBot
4de8ac2b76d56d5237777b297c4b6e91a91cb5e4
Windows
x64
正向 WebSocket
如果bot刚加入群聊,群聊中没有大于count条消息的话,则会报错 请求如下
{ "action": "get_group_msg_history", "params": { "group_id": 812312345, "count": 30, "message_id": 563047330 } }
日志
trce: Lagrange.Core.BotContext[0] [2024-05-17 08:58:54] [ServiceContext] [DEBUG]: Outgoing SSOFrame: trpc.msg.register_proxy.RegisterProxy.SsoGetGroupMsg trce: Lagrange.Core.BotContext[0] [2024-05-17 08:58:54] [ServiceContext] [DEBUG]: Incoming SSOFrame: trpc.msg.register_proxy.RegisterProxy.SsoGetGroupMsg warn: Lagrange.OneBot.Core.Operation.OperationService[0] Unexpected error encountered while handling message. System.Exception: Group member not found at Lagrange.OneBot.Message.MessageService.ConvertToGroupMsg(UInt32 uin, MessageChain chain) at System.Linq.Enumerable.SelectListIterator`2.Fill(ReadOnlySpan`1 source, Span`1 destination, Func`2 func) at System.Linq.Enumerable.SelectListIterator`2.ToList() at Lagrange.OneBot.Core.Operation.Message.GetGroupMessageHistoryOperation.HandleOperation(BotContext context, JsonNode payload) at Lagrange.OneBot.Core.Operation.OperationService.HandleOperation(MsgRecvEventArgs e) trce: Lagrange.OneBot.Core.Network.Service.ForwardWSService[13] Send(6bfe055a-a0a9-4cc9-87d2-a25f7f25d3c5) {"status":"failed","retcode":200,"data":null,"echo":null} trce: Lagrange.Core.BotContext[0] [2024-05-17 08:58:55] [ServiceContext] [DEBUG]: Outgoing SSOFrame: Heartbeat.Alive
但如果将count修改为18, 则刚好能获取 18 条, 大于18就会出现如上报错
18
将bot账号踢出群聊不附带消息记录拉入后, 使用同一参数就不能获取聊天记录了, 报错相同
我认为对于这种情况应报错消息记录获取失败而不是报错找不到群成员
如果bot在一个待了很久且活跃的群聊中, 我想要获取上千条消息, 但有如下发现 请求如下
{ "action": "get_group_msg_history", "params": { "group_id": 81231230, "count": 3000, "message_id": -1333010792 } }
虽然能够正常拉取到消息, 但是最多只能获取到30条, 小于30能符合预期获取.
在文档中并没有对count这一参数能获取的消息数量进行说明.
因此, 我认为需要对此进行提示或者使get_group_msg_history这一api能获取大于30条历史消息记录
get_group_msg_history
看了一下代码感觉这个问题是修不了了, 应该是tx的问题, 但是希望能够对此添加一个说明
get_group_msg_history 能够获取更多的历史消息
重现步骤中已经说明
No response
我觉得是修不了了, 所以希望能够在文档添加对此的相关的说明
这玩意一次性最多只能拉30条所有都是循环拉取的
理解了,也就是说我需要迭代来拉取是吧,每次只能拿30条 晚上写个小脚本测试一下
请确保您已阅读以上注意事项,并勾选下方的确认框。
Lagrange项目
OneBot
所使用/依赖的Lagrange项目对应的commit
4de8ac2b76d56d5237777b297c4b6e91a91cb5e4
运行环境
Windows
运行架构
x64
连接方式
正向 WebSocket
重现步骤
我想要获取某一群聊的历史消息记录来做词云, 有如下的发现
如果bot刚加入群聊,群聊中没有大于count条消息的话,则会报错 请求如下
日志
但如果将count修改为
18
, 则刚好能获取 18 条, 大于18就会出现如上报错将bot账号踢出群聊不附带消息记录拉入后, 使用同一参数就不能获取聊天记录了, 报错相同
我认为对于这种情况应报错消息记录获取失败而不是报错找不到群成员
如果bot在一个待了很久且活跃的群聊中, 我想要获取上千条消息, 但有如下发现 请求如下
虽然能够正常拉取到消息, 但是最多只能获取到30条, 小于30能符合预期获取.
在文档中并没有对count这一参数能获取的消息数量进行说明.
因此, 我认为需要对此进行提示或者使
get_group_msg_history
这一api能获取大于30条历史消息记录看了一下代码感觉这个问题是修不了了, 应该是tx的问题, 但是希望能够对此添加一个说明
期望的结果是什么?
get_group_msg_history 能够获取更多的历史消息
实际的结果是什么?
重现步骤中已经说明
简单的复现代码/链接(可选)
No response
日志记录(可选)
No response
补充说明(可选)
我觉得是修不了了, 所以希望能够在文档添加对此的相关的说明