A .NET 8 and .NET 9 class library for the AT Protocol and APIs for the Bluesky social network.
Add the idunno.Bluesky
package to your project, and then
BlueskyAgent agent = new ();
var loginResult = await agent.Login(username, password);
if (loginResult.Succeeded)
{
var response = await agent.CreatePost("Hello World");
if (response.Succeeded)
{
}
}
Please see the documentation for much more useful documentation and samples.
The API status page shows what APIs are currently implemented.
- Creating and deleting posts
- Posting with mentions, links and hashtags
- Posting images and video, with alt text support.
- Setting a post's language
- Gating threads and posts
- Liking, quoting, and reposting posts
- Viewing a user's timeline and notifications
- Viewing feeds
- Viewing threads
- Viewing notifications
- Viewing and setting preferences for
- Subscribing to user activities
- Viewing user profiles
- Notifications
- Following and unfollowing users
- Muting and blocking users
- Sending, receiving, and deleting direct messages
- Handle / password and OAuth authentication
- Jetstream support for simple firehose consumption
- Automatic session management with background token refreshes
Trimming is supported for applications targeting .NET 9.0 or later.
The releases page provides details of each release and what was added, changed or removed.
idunno.Bluesky
, idunno.AtProto
and idunno.AtProto.OAuthCallBack
are available under the MIT license, see the LICENSE file for more information.
- Logging in idunno.Bluesky
- GIF attaching
- Firehose support
- Wider test coverage
- More deserialization tests with captured responses
- Automatic Open Graph card generation when link facets detected.
idunno.AtProto
takes a dependency on System.Text.Json
v9 to support deserializing derived types where the $type
property is not the
first property in the JSON object.
- Microsoft.Extensions.Logging - used to provide log messages.
- Microsoft.IdentityModel.Tokens - used to extract the expiry date and time of the JWT tokens issued by Bluesky.
- IdentityModel.OidcClient - used to do the OAuth heavy lifting.
- DnsClient - used in Handle to DID resolution.
- ZstdSharp - used in Jetstream decompression.
- DotNetAnalyzers.DocumentationAnalyzers - used to validate XML docs on public types.
- SonarAnalyzer.CSharp - used for common code smell detection.
- xunit - used for unit tests.
- NerdBank.GitVersioning - used for version stamping assemblies and packages.
- DotNet.ReproducibleBuilds - used to easily set .NET reproducible build settings.
- ReportGenerator - used to produce code coverage reports.
- JunitXml.TestLogger - used in CI builds to produce test results in a format understood by the test-summary GitHub action.
- sign - used to code sign assemblies and nuget packages.
- docfx - used to generate the documentation site.
- FishyFlip
- X.Bluesky
- atprotosharp
- atompds - an implementation of an AtProto Personal Data Server in C#
- AppViewLite - an implementation of the Bluesky AppView in C# focused on low resource consumption