跳到主要内容

快速开始

Beta 版本

本库目前处于 Beta 阶段。API 实现已完成,但测试覆盖率较低。响应模型和方法签名可能会根据测试结果进行调整。

如果您发现响应模型不正确或行为异常,请通过 GitHub Issues 反馈,或提交 Pull Request

mastodon_client 是一个纯 Dart 编写的 Mastodon API 客户端库。 它可以在任何支持 Dart 的环境中运行:Flutter、服务端 Dart、CLI 工具等。

安装

pubspec.yaml 中添加依赖:

dependencies:
mastodon_client: ^1.0.0-beta.1

然后拉取依赖:

dart pub get

基本用法

初始化客户端

import 'package:mastodon_client/mastodon_client.dart';

final client = MastodonClient(
baseUrl: 'https://mastodon.social',
accessToken: 'your_access_token',
);

baseUrl 必须包含协议头(例如 https://)。 如果只使用不需要认证的端点,可以省略 accessToken

第一个 API 调用

获取服务器信息(无需认证):

final instance = await client.instance.fetch();
print(instance.title); // 服务器名称
print(instance.description); // 服务器描述

获取已认证用户的账号信息:

final me = await client.accounts.verifyCredentials();
print(me.displayName); // 显示名称
print(me.acct); // 用户名

API 结构

所有 API 都作为 MastodonClient 的属性暴露,用于命名空间隔离:

client.accounts      // 账号操作
client.statuses // 帖子操作
client.timelines // 时间线获取
client.notifications // 通知操作
client.media // 媒体上传
client.search // 搜索
client.oauth // OAuth token 操作
// ... 以及更多

控制日志输出

HTTP 请求/响应日志默认输出到 stdout。

// 禁用日志
final client = MastodonClient(
baseUrl: 'https://mastodon.social',
accessToken: 'token',
enableLog: false,
);

// 使用自定义 logger
final client = MastodonClient(
baseUrl: 'https://mastodon.social',
accessToken: 'token',
logger: FunctionLogger((level, message) {
// Your custom log handling
}),
);

详情请参阅 日志

下一步

  • 认证 — 通过 OAuth 获取 access token
  • 分页 — 基于游标的分页
  • 错误处理 — 异常层级与捕获模式