日本語はこちら
See example
Sample code contains how to generate tokens, toot, and subscribe stream.
var registeredApp = await ApplicationManager.RegistApp("Host name" /* ex: mastodon.cloud */, "Your Application Name", Scope.Read | Scope.Write | Scope.Follow);
registeredApp contains ClienID and ClientSecret.
// if login by email
var tokens = ApplicationManager.GetAccessTokenByEmail(registeredApp, "Email", "Password");
// if login by use OAuth
var url = ApplicationManager.GetOAuthUrl(registeredApp);
// access this url via browser, HttpClient, ...
var tokens = await ApplicationManager.GetAccessTokenByCode(registeredApp, "Code that Browser shows");
tokens contains AccessToken. You can access Mastodon API by using this AccessToken.
This code is how to Toot.
var client = new MastodonClient("Host name (url)", tokens.AccessToken);
client.PostNewStatus(status: "Hello Mastodon!");
// With media
var attachment = await client.UploadMedia("File Path");
client.PostNewStatus("Look my cuuuuute dog!", mediaIds: new int[]{attachment.Id});
and Using StreamAPI
var publicStream = client.GetObservablePublicTimeline()
.OfType<Status>()
.Subscribe(x => Console.WriteLine($"{x.Account.FullUserName} Tooted: {x.Content}"));
All APIs is ready
Accounts
Apps
Blocks
Favourites
Follow Requests
Follows
Instances
Media
Mutes
Notifications
Reports
Search
Statuses
Timelines
Streaming
MIT
Welcode pull requests!
For support multi target frameworks, Mastodot.csproj
is not supported format.
When edit and debug this library, replace <TargetFrameworks>netstandard1.1;netstandard1.3</TargetFrameworks>
to <TargetFramework>netstandard1.1</TargetFramework>
or
<TargetFramework>netstandard1.1</TargetFramework>