Appearance
快速开始
这页按第一次接入 AioTieba4DotNet 的顺序来写。你会先确认环境并安装包,然后依次跑通访客读取、登录态调用、TiebaOptions 配置、依赖注入和 factory 创建路径。
1. 运行环境
- SDK:
.NET 10 - 包:
AioTieba4DotNet - 公开入口:
TiebaClient、ITiebaClient、AddAioTiebaClient(...)、ITiebaClientFactory
如果你刚开始接入,建议先用控制台程序或最小样例跑通只读调用,再把同一套代码接到应用里的 DI 或多账号场景。
2. 安装
先把包加到项目里:dotnet add package AioTieba4DotNet
安装完成后,先不要急着接登录态。先跑通一个不依赖凭据的读取调用,能更快确认 SDK、网络和最小使用姿势都没问题。
3. 访客读取
访客模式适合查吧、读取帖子列表、读取公开资料这类只读操作。第一次接入时,先从这里开始最稳妥。
csharp
using AioTieba4DotNet;
using var client = new TiebaClient();
var forum = await client.Forums.GetForumAsync("csharp");
var threads = await client.Threads.GetThreadsAsync("csharp");
Console.WriteLine($"吧名: {forum.Fname}");
Console.WriteLine($"当前页主题数: {threads.Objs.Count}");如果这里就失败,通常先看运行环境、网络链路或请求超时设置。排查入口见文末的排障链接。
4. 登录态调用
签到、私信、吧群消息、吧务操作这类能力需要登录态。推荐显式提供 BDUSS 和 STOKEN,这样本地就能尽早发现缺失凭据或配置错误。
csharp
using AioTieba4DotNet;
using var client = new TiebaClient("你的BDUSS", "你的STOKEN");
await client.Forums.SignAsync("csharp");
var selfInfo = await client.Users.GetSelfInfoAsync();
Console.WriteLine(selfInfo.ShowName);接入登录态时,最常见的异常有三类:
- 缺少必需凭据时抛出
TiebaAuthenticationException - 配置本身非法时抛出
TiebaConfigurationException - 服务端业务拒绝时抛出
TieBaServerException
5. 用 TiebaOptions 管理配置
TiebaOptions 是公开配置入口。大多数场景可以直接用默认值,只有当你需要显式带上凭据、收紧超时,或者把传输模式固定为 HTTP 时,才需要自己配置它。
csharp
using AioTieba4DotNet;
using AioTieba4DotNet.Contracts;
using var client = new TiebaClient(new TiebaOptions
{
Bduss = "你的BDUSS",
Stoken = "你的STOKEN",
TransportMode = TiebaTransportMode.Http,
RequestTimeout = TimeSpan.FromSeconds(20),
MaxReadRetryAttempts = 1
});
var homepage = await client.Users.GetHomepageAsync(1);
Console.WriteLine(homepage.Count);你可以先记住两条规则:
- 默认
TransportMode是Auto - 当链路或接口不适合 WebSocket 时,会回退到 HTTP,但取消、鉴权失败、配置错误和服务端业务错误不属于自动回退信号
6. 接到依赖注入
如果你的应用已经在用 Microsoft.Extensions.DependencyInjection,推荐直接注册 AddAioTiebaClient(...)。这样可以统一管理默认配置,也能直接在业务服务里注入 ITiebaClient。
csharp
using AioTieba4DotNet;
builder.Services.AddAioTiebaClient(options =>
{
options.Bduss = builder.Configuration["Tieba:Bduss"];
options.Stoken = builder.Configuration["Tieba:Stoken"];
options.RequestTimeout = TimeSpan.FromSeconds(20);
});注册后,业务代码里直接依赖 ITiebaClient:
csharp
using AioTieba4DotNet;
public sealed class ForumWorker(ITiebaClient client)
{
public async Task RunAsync(CancellationToken cancellationToken)
{
var detail = await client.Forums.GetDetailAsync("csharp", cancellationToken);
Console.WriteLine(detail.Fname);
}
}7. 需要多个账号时,用 factory
ITiebaClientFactory 适合 bot、定时任务、客服号切换这类一个进程里要按需创建多个客户端的场景。它保留和 DI 相同的注册方式,但把实例创建推迟到真正使用的时候。
csharp
using AioTieba4DotNet;
using AioTieba4DotNet.Contracts;
public sealed class MultiAccountJob(ITiebaClientFactory factory)
{
public async Task RunAsync()
{
using var signer = factory.CreateClient("BDUSS_A", "STOKEN_A");
using var reader = factory.CreateClient(new TiebaOptions
{
Bduss = "BDUSS_B",
Stoken = "STOKEN_B",
TransportMode = TiebaTransportMode.Http
});
await signer.Forums.SignAsync("csharp");
var messages = await reader.Messages.GetAtsAsync();
Console.WriteLine(messages.Count);
}
}8. 让 AI 也能快速用起来
如果你会配合支持 skills add 的 AI 工具一起使用这个库,可以直接从仓库添加导出的 aiotieba4dotnet skill。它适合这几类场景:
- 让 AI 帮你选择应该用哪个公开模块
- 让 AI 生成最小可运行的 C# 示例
- 让 AI 解释初始化方式、配置项和常见异常边界
最短添加方式:
bash
npx skills add BaWuZhuShou/AioTieba4DotNet如果你的工具更适合直接从 GitHub 目录添加,也可以使用:
bash
npx skills add https://github.com/BaWuZhuShou/AioTieba4DotNet/tree/master/skills/aiotieba4dotnet这个 skill 面向的是已发布库的使用者,不是仓库源码维护流程。它会优先围绕公开入口、公开模块和公开模型来回答问题,而不是引导到内部 API。
如果你想查看 skill 的入口和引用资料,可以直接看仓库里的这些文件:
skills/aiotieba4dotnet/SKILL.mdskills/aiotieba4dotnet/references/quickstart.mdskills/aiotieba4dotnet/references/method-recipes.mdskills/aiotieba4dotnet/references/scenario-templates.mdskills/aiotieba4dotnet/references/output-format.md
9. 下一步
接下来可以按你要解决的问题继续往下读: