Social
Diese Seite behandelt die sozialen Graph-APIs über einfache Follows hinaus: Follower-Anfragen, gefolgten Tags, Follow-Vorschläge, Empfehlungen, hervorgehobene Tags, Tag-Operationen, Favoriten und Lesezeichen.
Follower-Anfragen
Wenn ein Account gesperrt ist, müssen eingehende Follower-Anfragen über client.followRequests explizit angenommen oder abgelehnt werden.
Ausstehende Anfragen auflisten
final page = await client.followRequests.fetch(limit: 40);
for (final account in page.items) {
print('${account.acct} wants to follow you');
}
// Paginate
if (page.nextMaxId != null) {
final next = await client.followRequests.fetch(maxId: page.nextMaxId);
}
fetch gibt MastodonPage<MastodonAccount> zurück. Paginierungs-Cursor kommen aus dem Link-Antwort-Header. Das Standardlimit ist 40, das Maximum 80.
Anfrage annehmen
final relationship = await client.followRequests.authorize('12345');
print(relationship.followedBy); // true
Anfrage ablehnen
final relationship = await client.followRequests.reject('12345');
Beide Methoden, authorize und reject, geben eine MastodonRelationship zurück, die den aktualisierten Beziehungsstatus widerspiegelt.
Gefolgte Tags
client.followedTags listet die Hashtags auf, denen der authentifizierte Benutzer folgt. Beiträge mit gefolgten Tags erscheinen in der Home-Timeline.
final page = await client.followedTags.fetch(limit: 100);
for (final tag in page.items) {
print('#${tag.name}');
}
Das Standardlimit ist 100, das Maximum 200. Paginierung verwendet maxId, sinceId und minId. Cursor-IDs sind interne Follow-Beziehungs-Datensatz-IDs, keine Tag-IDs.
Zum Folgen oder Entfolgen eines bestimmten Tags client.tags verwenden (siehe unten).
Follow-Vorschläge
client.suggestions gibt Accounts zurück, die der Server zum Folgen empfiehlt — vom Staff kuratierte Auswahlen oder Accounts, mit denen positive Interaktionen stattgefunden haben, aber noch nicht gefolgt wird.
final suggestions = await client.suggestions.fetch(limit: 20);
for (final suggestion in suggestions) {
print('${suggestion.account.acct} — reason: ${suggestion.source}');
}
Gibt List<MastodonSuggestion> zurück. Das Standardlimit ist 40, das Maximum 80.
Einen Account aus der Vorschlagsliste entfernen:
await client.suggestions.remove('12345');
Dies ist erfolgreich, auch wenn der Account gerade nicht in den Vorschlägen ist.
Empfehlungen
Empfehlungen sind Accounts, die ein Benutzer auf seinem Profil hervorheben möchte. client.endorsements zur Abfrage verwenden.
final page = await client.endorsements.fetch(limit: 40);
for (final account in page.items) {
print(account.displayName);
}
Gibt MastodonPage<MastodonAccount> zurück. Das Standardlimit ist 40, das Maximum 80. Zum Empfehlen oder Zurückziehen einer Empfehlung client.accounts.endorse und client.accounts.unendorse verwenden.
Hervorgehobene Tags
Hervorgehobene Tags sind Hashtags, die prominent auf dem Benutzerprofil angezeigt werden. client.featuredTags zur Verwaltung verwenden.
Hervorgehobene Tags auflisten
final tags = await client.featuredTags.fetch();
for (final tag in tags) {
print('#${tag.name} — ${tag.statusesCount} statuses');
}
Hervorgehobenen Tag hinzufügen
final tag = await client.featuredTags.create('dart');
print(tag.id);
Tag-Namen ohne das #-Präfix angeben.
Hervorgehobenen Tag entfernen
await client.featuredTags.delete(tag.id);
Vorschläge für hervorgehobene Tags
Der Server gibt bis zu 10 zuletzt verwendete Hashtags als Kandidaten zurück:
final suggestions = await client.featuredTags.fetchSuggestions();
Gibt List<MastodonTag> zurück.
Tags
client.tags bietet Tag-Informationen, Folgen- und Hervorhebungsoperationen.
Tag-Informationen abrufen
final tag = await client.tags.fetch('dart');
print(tag.name);
print(tag.following); // null if unauthenticated
Die Namenssuche ist Groß-/Kleinschreibungsunabhängig. Wenn authentifiziert, wird das Feld following einbezogen.
Tag folgen und entfolgen
final tag = await client.tags.follow('dart');
print(tag.following); // true
final unfollowed = await client.tags.unfollow('dart');
print(unfollowed.following); // false
Tag hervorheben und zurückziehen (Mastodon 4.4.0+)
await client.tags.feature('dart');
await client.tags.unfeature('dart');
Beide geben MastodonTag zurück und spiegeln den aktualisierten Status wider.
Favoriten
client.favourites listet alle Status auf, die der authentifizierte Benutzer favorisiert hat.
final page = await client.favourites.fetch(limit: 20);
for (final status in page.items) {
print(status.content);
}
// Older results
if (page.nextMaxId != null) {
final older = await client.favourites.fetch(maxId: page.nextMaxId);
}
Gibt MastodonPage<MastodonStatus> zurück. Das Standardlimit ist 20, das Maximum 40. Paginierung verwendet maxId, sinceId und minId.
Zum Favorisieren oder Entfernen aus den Favoriten eines Status client.statuses.favourite und client.statuses.unfavourite verwenden.
Lesezeichen
client.bookmarks listet alle Status auf, die der authentifizierte Benutzer mit einem Lesezeichen versehen hat.
final page = await client.bookmarks.fetch(limit: 20);
for (final status in page.items) {
print(status.id);
}
Gibt MastodonPage<MastodonStatus> zurück. Das Standardlimit ist 20, das Maximum 40. Paginierung verwendet maxId, sinceId und minId.
Zum Hinzufügen oder Entfernen eines Lesezeichens client.statuses.bookmark und client.statuses.unbookmark verwenden.