登录状态下给群组消息发Reaction返回ANONYMOUS_REACTIONS_DISABLED错误
解决发送群组消息Reaction时的ANONYMOUS_REACTIONS_DISABLED错误
问题根源是调用Messages_SendReaction时未明确指定非匿名模式,该方法的anonymous参数默认值可能为true,而目标群组禁用了匿名反应,因此触发错误。
修改代码中的调用逻辑,添加anonymous: false参数即可解决:
await Client.Messages_SendReaction(uuu, item.ID, new[] { reaction }, anonymous: false);
另外,代码里的Client.Messages_GetAvailableReactions(item.GetHashCode());属于无效代码——用GetHashCode()作为消息ID是错误的,且该方法调用对发送反应没有必要,建议直接删除。
优化后的循环部分代码:
var History = await Client.Messages_GetHistory(uuu); var random = new Random(); // 将Random实例移到循环外,避免重复初始化 foreach (var item in History.Messages) { var reactionIndex = random.Next(0, avReactions.reactions.Count); var reaction = avReactions.reactions[reactionIndex] as ReactionEmoji; if (reaction != null) // 添加空值判断,避免类型转换失败引发异常 { await Client.Messages_SendReaction(uuu, item.ID, new[] { reaction }, anonymous: false); } }
内容的提问来源于stack exchange,提问作者Moslem7026
相关产品推荐
相关产品推荐

