• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

yamachu/Mastodot: C# Library for Mastodon API. Easy Toot!

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

yamachu/Mastodot

开源软件地址(OpenSource Url):

https://github.com/yamachu/Mastodot

开源编程语言(OpenSource Language):

C# 100.0%

开源软件介绍(OpenSource Introduction):

Mastodot - Mastodon API library for C# (.NET)

NuGetBadge

日本語はこちら

Sample code

See example

Sample code contains how to generate tokens, toot, and subscribe stream.

Regist an app to Mastodon Instance

var registeredApp = await ApplicationManager.RegistApp("Host name" /* ex: mastodon.cloud */, "Your Application Name", Scope.Read | Scope.Write | Scope.Follow);

registeredApp contains ClienID and ClientSecret.

Login and get AccessToken

// 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.

Using Mastodon API

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}"));

MastodonAPIs

Mastodon APIs

All APIs is ready

Accounts

  • GET /api/v1/accounts/:id
  • GET /api/v1/accounts/verify_credentials
  • PATCH /api/v1/accounts/update_credentials
  • GET /api/v1/accounts/:id/followers
  • GET /api/v1/accounts/:id/following
  • GET /api/v1/accounts/:id/statuses
  • POST /api/v1/accounts/:id/follow
  • POST /api/v1/accounts/:id/unfollow
  • POST /api/v1/accounts/:id/block
  • POST /api/v1/accounts/:id/unblock
  • POST /api/v1/accounts/:id/mute
  • POST /api/v1/accounts/:id/unmute
  • GET /api/v1/accounts/relationships
  • GET /api/v1/accounts/search

Apps

  • POST /api/v1/apps

Blocks

  • GET /api/v1/blocks

Favourites

  • GET /api/v1/favourites

Follow Requests

  • GET /api/v1/follow_requests
  • POST /api/v1/follow_requests/:id/authorize
  • POST /api/v1/follow_requests/:id/reject

Follows

  • POST /api/v1/follows

Instances

  • GET /api/v1/instance

Media

  • POST /api/v1/media

Mutes

  • GET /api/v1/mutes

Notifications

  • GET /api/v1/notifications
  • GET /api/v1/notifications/:id
  • POST /api/v1/notifications/clear

Reports

  • GET /api/v1/reports
  • POST /api/v1/reports

Search

  • GET /api/v1/search

Statuses

  • GET /api/v1/statuses/:id
  • GET /api/v1/statuses/:id/context
  • GET /api/v1/statuses/:id/card
  • GET /api/v1/statuses/:id/reblogged_by
  • GET /api/v1/statuses/:id/favourited_by
  • POST /api/v1/statuses
  • DELETE /api/v1/statuses/:id
  • POST /api/v1/statuses/:id/reblog
  • POST /api/v1/statuses/:id/unreblog
  • POST /api/v1/statuses/:id/favourite
  • POST /api/v1/statuses/:id/unfavourite

Timelines

  • GET /api/v1/timelines/home
  • GET /api/v1/timelines/public
  • GET /api/v1/timelines/tag/:hashtag

Streaming

  • GET /api/v1/streaming/user
  • GET /api/v1/streaming/public
  • GET /api/v1/streaming/hashtag

License

MIT

Other

Welcode pull requests!

For developer

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>




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap