Aller au contenu principal

Social

Cette page couvre les APIs du graphe social au-delà des abonnements simples : demandes d'abonnement, tags suivis, suggestions d'abonnement, mises en avant, tags vedettes, opérations sur les tags, favoris et signets.

Demandes d'abonnement

Lorsqu'un compte est verrouillé, les demandes d'abonnement entrantes doivent être explicitement acceptées ou rejetées via client.followRequests.

Lister les demandes en attente

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 retourne MastodonPage<MastodonAccount>. Les curseurs de pagination proviennent de l'en-tête de réponse Link. La limite par défaut est 40 et le maximum est 80.

Accepter une demande

final relationship = await client.followRequests.authorize('12345');
print(relationship.followedBy); // true

Rejeter une demande

final relationship = await client.followRequests.reject('12345');

authorize et reject retournent tous deux un MastodonRelationship reflétant l'état de la relation mise à jour.

Tags suivis

client.followedTags liste les hashtags que l'utilisateur authentifié suit. Les publications avec des tags suivis apparaissent dans le fil personnel.

final page = await client.followedTags.fetch(limit: 100);
for (final tag in page.items) {
print('#${tag.name}');
}

La limite par défaut est 100 et le maximum est 200. La pagination utilise maxId, sinceId et minId. Notez que les IDs de curseur sont des IDs internes d'enregistrements de relation d'abonnement, et non des IDs de tags.

Pour suivre ou ne plus suivre un tag spécifique, utilisez client.tags (voir ci-dessous).

Suggestions d'abonnement

client.suggestions retourne les comptes que le serveur recommande de suivre — des comptes sélectionnés par l'équipe ou des comptes avec lesquels l'utilisateur a eu des interactions positives sans encore les suivre.

final suggestions = await client.suggestions.fetch(limit: 20);
for (final suggestion in suggestions) {
print('${suggestion.account.acct} — reason: ${suggestion.source}');
}

Retourne List<MastodonSuggestion>. La limite par défaut est 40 et le maximum est 80.

Pour retirer un compte de la liste des suggestions :

await client.suggestions.remove('12345');

Cela réussit même si le compte ne figure pas dans les suggestions.

Mises en avant

Les mises en avant sont des comptes que l'utilisateur a choisi de mettre en avant sur son profil. Utilisez client.endorsements pour les récupérer.

final page = await client.endorsements.fetch(limit: 40);
for (final account in page.items) {
print(account.displayName);
}

Retourne MastodonPage<MastodonAccount>. La limite par défaut est 40 et le maximum est 80. Pour mettre en avant ou retirer la mise en avant d'un compte, utilisez client.accounts.endorse et client.accounts.unendorse.

Tags vedettes

Les tags vedettes sont des hashtags affichés en évidence sur le profil d'un utilisateur. Utilisez client.featuredTags pour les gérer.

Lister les tags vedettes

final tags = await client.featuredTags.fetch();
for (final tag in tags) {
print('#${tag.name}${tag.statusesCount} statuses');
}

Ajouter un tag vedette

final tag = await client.featuredTags.create('dart');
print(tag.id);

Passez le nom du tag sans le préfixe #.

Retirer un tag vedette

await client.featuredTags.delete(tag.id);

Suggestions de tags vedettes

Le serveur retourne jusqu'à 10 hashtags récemment utilisés comme candidats :

final suggestions = await client.featuredTags.fetchSuggestions();

Retourne List<MastodonTag>.

Tags

client.tags fournit des informations sur les tags ainsi que les opérations de suivi et de mise en avant.

Récupérer les informations d'un tag

final tag = await client.tags.fetch('dart');
print(tag.name);
print(tag.following); // null if unauthenticated

La recherche par nom est insensible à la casse. Quand authentifié, le champ following est inclus.

Suivre et ne plus suivre un tag

final tag = await client.tags.follow('dart');
print(tag.following); // true

final unfollowed = await client.tags.unfollow('dart');
print(unfollowed.following); // false

Mettre en avant et retirer la mise en avant d'un tag (Mastodon 4.4.0+)

await client.tags.feature('dart');
await client.tags.unfeature('dart');

Les deux retournent MastodonTag reflétant l'état mis à jour.

Favoris

client.favourites liste tous les statuts que l'utilisateur authentifié a mis en favoris.

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

Retourne MastodonPage<MastodonStatus>. La limite par défaut est 20 et le maximum est 40. La pagination utilise maxId, sinceId et minId.

Pour ajouter ou retirer un statut des favoris, utilisez client.statuses.favourite et client.statuses.unfavourite.

Signets

client.bookmarks liste tous les statuts que l'utilisateur authentifié a ajoutés aux signets.

final page = await client.bookmarks.fetch(limit: 20);
for (final status in page.items) {
print(status.id);
}

Retourne MastodonPage<MastodonStatus>. La limite par défaut est 20 et le maximum est 40. La pagination utilise maxId, sinceId et minId.

Pour ajouter ou supprimer un signet, utilisez client.statuses.bookmark et client.statuses.unbookmark.