Appearance
排障
这页按现象、原因、处理方式整理。先找最接近你的症状,不需要从头读完。
创建客户端就报配置错误
常见表现
TiebaConfigurationException- DI 解析
ITiebaClient时立即失败
常见原因
- 只提供了
Stoken,没有Bduss RequestTimeout或MaxReadRetryAttempts配置非法- 配置源里键名拼错,导致实际读到的是空值
建议处理
- 先确认
Bduss和Stoken是否都来自同一个账号 - 在 DI 模式下,确认
Tieba:Bduss和Tieba:Stoken这两个配置键存在 - 把超时和重试配置先恢复成默认值,再逐步收紧
访客模式调用写接口直接失败
常见表现
TiebaAuthenticationException- 调用
SignAsync(...)、SendMessageAsync(...)、SetProfileAsync(...)时在本地就失败
原因
这是当前客户端的行为。缺少必需凭据时,客户端会在本地直接失败,而不是把请求发出去再等一个不稳定的服务端错误形状。
建议处理
- 只读操作继续用访客客户端
- 写操作改用
new TiebaClient("BDUSS", "STOKEN") - 如果是宿主应用,确认 DI 读取到了真实配置值
明明有凭据,但服务端还是拒绝
常见表现
TieBaServerException- 错误码看起来像吧不存在、无权限或请先登录
说明
这通常不是客户端构造问题,而是服务端业务条件不满足。例如:
- 目标贴吧或帖子不存在
- 当前账号没有吧务权限
- 目标接口对环境、账号状态或时间窗口有额外要求
建议处理
- 先检查目标
fname、fid、tid、pid是否正确 - 如果是后台管理或消息写操作,确认当前账号具备权限
- 对状态型接口,准备安全夹具,不要把真实线上目标写死在示例代码里
想读消息,但 Client 模块里找不到消息 API
原因
这是当前公开边界。client.Client 现在只保留生命周期能力,消息读写统一在 client.Messages。
正确入口
client.Messages.GetAtsAsync()client.Messages.GetRepliesAsync()client.Messages.GetGroupMessagesAsync(...)client.Messages.SendMessageAsync(...)client.Messages.SendChatroomMessageAsync(...)client.Messages.SetMessageReadAsync(...)client.Messages.ParsePushNotifications(...)
生命周期相关入口
client.Client.InitWebSocketAsync()client.Client.InitZIdAsync()client.Client.SyncAsync()
模块边界
- 消息业务 API 去
client.Messages找。- 连接预热、标识初始化和同步 helper 去
client.Client找。
想读取 @ 或回复消息,但不知道该用哪个模块
直接使用 client.Messages.GetAtsAsync(...) 和 client.Messages.GetRepliesAsync(...)。消息读取属于 Messages,不属于 Users 或 Client。
想强制不用 WebSocket
把 TiebaOptions.TransportMode 设成 TiebaTransportMode.Http 即可。
csharp
using AioTieba4DotNet;
using AioTieba4DotNet.Contracts;
using var client = new TiebaClient(new TiebaOptions
{
Bduss = "你的BDUSS",
Stoken = "你的STOKEN",
TransportMode = TiebaTransportMode.Http
});想提前建立 WebSocket 连接
调用 client.Client.InitWebSocketAsync()。如果你的目标只是普通只读论坛查询,一般不用这么做。它更适合消息组或连接敏感场景,而且不会改变消息 API 仍然归属 client.Messages 这一点。
从 v2 升级后找不到入口
先对照下面这组变化。
Messages现在负责消息读取、私信、吧群消息、已读状态和推送通知解析Admins现在负责吧务和后台管理操作Client只保留生命周期方法- v3 只支持
net10.0
文档路径改了之后,应该从哪里继续找
文档现在按三类入口组织。
/how-to/*,面向直接任务操作/reference/modules,面向完整公开 API 查询/guide/advanced与/guide/troubleshooting,面向设计解释和问题排查