idunno.Bluesky - Bluesky 的 .NET SDK。
一个用于 Bluesky 和 AT Protocol 的 .NET 8、9 和 10 库和 SDK
入门
将 idunno.Bluesky 包添加到您的项目中,然后
BlueskyAgent agent = new ();
var loginResult = await agent.Login(username, password);
if (loginResult.Succeeded)
{
var response = await agent.Post("Hello World");
if (response.Succeeded)
{
}
}
请参阅文档以获取更多有用的文档和示例。
API 状态页面展示了当前已实现的 API,以及 Bluesky API 名称如何映射到 the idunno.Bluesky SDK 方法,这些方法遵循更 .NET 惯用的风格。
主要功能
- 创建和删除帖子
- 发布包含提及、链接和标签的帖子
- 发布图片、GIF 和视频,支持替代文本。
- 设置帖子的语言
- 限制线程和帖子
- 点赞、引用和转发帖子
- 查看用户的时间线和通知
- 查看信息流
- 查看线程
- 查看通知
- 查看和设置偏好设置
- 订阅用户活动
- 查看用户资料
- 通知
- 关注和不关注用户
- 静音和屏蔽用户
- 发送、接收和删除私信
- 创建、加入和退出群组对话
- 创建、删除和列出用户的书签
- Handle / 密码和 OAuth 身份验证
- Jetstream 支持简单的 firehose 消费
- 自动会话管理,支持后台令牌刷新
支持针对 .NET 9.0 或更高版本的应用程序进行裁剪。
当前构建状态
许可证
idunno.Bluesky、idunno.AtProto、idunno.AtProto.OAuthCallBack 和 idunno.AtProto.Types 采用 MIT 许可证,
详见 LICENSE 文件以获取更多信息。
打赏 / 赞助
如果您觉得本库有用,请考虑向以下机构捐款:
- 当地食物银行,
- 当地动物救助机构或收容所,或
- 您所在国家的多发性硬化症慈善机构
如果您想让我感到温暖,可以在 Bluesky 上通过 @blowdart.me 给我留言。
发布历史
发布页面 提供了每个版本的详细信息,包括新增、更改或移除的内容。 变更日志 也包含这些信息,以及即将发布的版本信息。
代码签名与验证
该项目使用 Authenticode 证书对 NuGet 包中包含的程序集进行签名, 并对 nupkg 包本身进行作者签名。 NuGet 在发布过程中以及 在 Windows 和 Linux 上安装软件包时 会验证签名。
有关验证我的 .NET 程序集、NuGet 包和 Windows 可执行文件签名的说明,可在我的 GitHub 个人资料 上的 代码签名信息 页面中找到。
预发布版本
如果你想测试预发布版本,你可以在 myget feed 中找到它们。
你可以将其作为包源添加到 Visual Studio
或通过 命令行,或者使用下面所示的示例 nuget.config 文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="blowdart.myget.org" value="https://www.myget.org/F/blowdart/api/v3/index.json" />
</packageSources>
<packageSourceMapping>
<packageSource key="blowdart.myget.org">
<package pattern="idunno.AtProto" />
<package pattern="idunno.AtProto.*" />
<package pattern="idunno.Bluesky" />
</packageSource>
<packageSource key="nuget.org">
<package pattern="*" />
</packageSource>
</packageSourceMapping>
</configuration>
软件包源 URI 为 https://www.myget.org/F/blowdart/api/v3/index.json
要匹配特定提交的预发布版本,如果该提交生成了构建
- 检查 version.json 中的版本值,
- 检查是否针对您感兴趣的提交执行了 Pre-release publish runs,
- 预发布软件包的构建编号将是提交 sha 的前 10 位数字,前缀为
g。
例如,提交 190d63e
生成了夜间构建和软件包。软件包构建编号为 1.1.0-prerelease.g190d63e20d
请注意,夜间构建使用 Trusted Signing 进行签名, 其签名证书链与发布构建的签名链不匹配。主体名称保持不变。
计划工作
主要
- idunno.Bluesky 中的日志记录
- 更广泛的测试覆盖
- 使用捕获的响应进行更多反序列化测试
依赖项
idunno.AtProto 的 .NET 8.0 版本依赖于 System.Text.Json v9 以支持反序列化派生类型,
其中 $type 属性不是 JSON 对象中的第一个属性。
外部依赖项
- Microsoft.Extensions.Logging - 用于提供日志消息。
- Microsoft.IdentityModel.Tokens - 用于提取由 Bluesky 签发的 JWT 令牌的过期日期和时间。
- Duende.IdentityModel.OidcClient - 用于执行 OAuth 繁重的工作。
- DnsClient - 用于 Handle 中的 DID 解析。
- PeterO.CBor - 用于 Fire Hose 解码。
- SimpleBase - 用于解码 CIDs。
- ZstdSharp - 用于 Jetstream 解压缩。
构建期间使用的外部分析器
- DotNetAnalyzers.DocumentationAnalyzers - 用于验证公共类型的 XML 文档。
- CommentSense - 用于验证公共类型的 XML 文档。
- Microsoft.CodeAnalysis.PublicApiAnalyzers - 用于跟踪公共 API 变更。
- SonarAnalyzer.CSharp - 用于常见的代码异味检测。
外部构建 & 测试工具
- docfx - 用于生成文档站点。
- DotNet.ReproducibleBuilds - 用于轻松设置 .NET 可重现构建设置。
- Coverlet.Collector - 用于生成代码覆盖率文件
- JunitXml.TestLogger - 用于在 CI 构建中生成 test-summary GitHub action 可理解的格式测试结果。
- NerdBank.GitVersioning - 用于为程序集和包进行版本标记。
- ReportGenerator - 用于生成代码覆盖率报告。
- sign - 用于对程序集和 nuget 包进行代码签名。
- xunit - 用于单元测试。
其他 .NET Bluesky 库和项目
- FishyFlip
- X.Bluesky
- atprotosharp
- atompds - 一个使用 C# 实现的 AtProto 个人数据服务器
- AppViewLite - 一个使用 C# 实现的 Bluesky AppView,专注于低资源消耗