Zum Hauptinhalt springen

Weitere APIs

Diese Seite behandelt geplante Status, Trends, Profilbild-Verwaltung, App-Registrierung, E-Mail-Bestätigung und den asynchronen Aktualisierungsstatus.

Geplante Status​

Mit client.scheduledStatuses werden Status verwaltet, die zur späteren Veröffentlichung eingeplant sind. Um einen geplanten Status zu erstellen, scheduledAt beim Aufruf von client.statuses.create übergeben.

Geplante Status auflisten​

final page = await client.scheduledStatuses.fetch(limit: 20);
for (final s in page.items) {
print('${s.id} scheduled for ${s.scheduledAt}');
}

// Paginate
if (page.nextMaxId != null) {
final next = await client.scheduledStatuses.fetch(maxId: page.nextMaxId);
}

Gibt MastodonPage<MastodonScheduledStatus> zurück. Das Standardlimit ist 20, das Maximum 40.

Einzelnen geplanten Status abrufen​

final s = await client.scheduledStatuses.fetchById('9876');

Neu planen​

Die neue Zeit muss mindestens 5 Minuten in der Zukunft liegen und im ISO-8601-Format angegeben werden:

final updated = await client.scheduledStatuses.update(
'9876',
scheduledAt: '2025-12-31T23:59:00.000Z',
);

Abbrechen​

await client.scheduledStatuses.delete('9876');

Alle Trend-Endpunkte sind öffentlich und erfordern keine Authentifizierung. client.trends verwenden.

final tags = await client.trends.fetchTags(limit: 10);
for (final tag in tags) {
print('#${tag.name}');
}

Gibt Tags mit steigender Nutzung in der vergangenen Woche zurück, sortiert nach dem internen Trend-Score. Das Standardlimit ist 10, das Maximum 20. Für die Paginierung offset verwenden.

final statuses = await client.trends.fetchStatuses(limit: 20);

Gibt Status zurück, die deutlich mehr Interaktionen als üblich erhalten haben. Das Standardlimit ist 20, das Maximum 40.

final links = await client.trends.fetchLinks(limit: 10);
for (final link in links) {
print(link.url);
}

Gibt häufig im Netzwerk geteilte Links zurück. Das Standardlimit ist 10, das Maximum 20.

Alle drei Methoden akzeptieren einen offset-Parameter für Offset-basierte Paginierung.

Profilbild-Verwaltung​

client.profile ermöglicht das Entfernen von Profilbild und Header-Bild.

Avatar löschen​

final account = await client.profile.deleteAvatar();

Header löschen​

final account = await client.profile.deleteHeader();

Beide Methoden geben den aktualisierten MastodonCredentialAccount zurück und sind erfolgreich, auch wenn kein Bild gesetzt ist. Sie erfordern den OAuth-Scope write:accounts.

Zum Hochladen eines neuen Avatars oder Headers client.accounts.updateCredentials verwenden.

App-Registrierung​

client.apps für OAuth-Anwendungsregistrierung und Token-Verifizierung verwenden.

Anwendung registrieren​

final app = await client.apps.create(
clientName: 'My Mastodon App',
redirectUris: ['myapp://oauth/callback'],
scopes: 'read write push',
website: 'https://example.com',
);
print(app.clientId);
print(app.clientSecret);

redirectUris ist Pflicht. Für den Out-of-Band-Flow ['urn:ietf:wg:oauth:2.0:oob'] übergeben. scopes ist standardmäßig read, wenn weggelassen. Gibt MastodonCredentialApplication zurück.

App-Credentials verifizieren​

final app = await client.apps.verifyCredentials();
print(app.name);

Gibt MastodonApplication zurück. Wirft einen Authentifizierungsfehler, wenn der Token ungültig ist.

E-Mail-Bestätigung​

client.emails verwaltet das erneute Senden von Bestätigungs-E-Mails für neu registrierte Accounts.

Bestätigungs-E-Mail erneut senden​

await client.emails.resendConfirmation();

// Optionally update the email address at the same time
await client.emails.resendConfirmation(email: 'new@example.com');

Wenn email angegeben ist, wird die unbestätigte E-Mail-Adresse aktualisiert, bevor die Bestätigung gesendet wird.

Bestätigungsstatus prüfen​

await client.emails.checkConfirmation();

Beide Methoden erfordern einen Token, der vom Client erhalten wurde, der den unbestätigten Account erstellt hat.

Asynchrone Aktualisierungen​

client.asyncRefreshes ermöglicht die Abfrage des Fortschritts von Hintergrundaktualisierungsjobs. Dies ist eine experimentelle API, die in Mastodon 4.4.0 hinzugefügt wurde.

Wenn eine Antwort einen Mastodon-Async-Refresh-Header enthält, ist der Wert eine ID, die abgefragt werden kann, bis der Vorgang abgeschlossen ist:

final refresh = await client.asyncRefreshes.fetch('refresh-id-from-header');
print(refresh.complete); // true when done

Gibt MastodonAsyncRefresh zurück. Erfordert den OAuth-Scope read.