Autres APIs
Cette page couvre les statuts planifiés, les tendances, la gestion des images de profil, l'enregistrement d'applications, la confirmation d'e-mail et le statut de rafraîchissement asynchrone.
Statuts planifiés
Utilisez client.scheduledStatuses pour gérer les statuts mis en file d'attente pour publication ultérieure. Pour créer un statut planifié, passez scheduledAt lors de l'appel à client.statuses.create.
Lister les statuts planifiés
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);
}
Retourne MastodonPage<MastodonScheduledStatus>. La limite par défaut est 20 et le maximum est 40.
Récupérer un statut planifié unique
final s = await client.scheduledStatuses.fetchById('9876');
Replanifier
Le nouvel horaire doit être au moins 5 minutes dans le futur et doit être fourni au format ISO 8601 :
final updated = await client.scheduledStatuses.update(
'9876',
scheduledAt: '2025-12-31T23:59:00.000Z',
);
Annuler
await client.scheduledStatuses.delete('9876');
Tendances
Tous les endpoints de tendances sont publics et ne nécessitent pas d'authentification. Utilisez client.trends.
Tags tendance
final tags = await client.trends.fetchTags(limit: 10);
for (final tag in tags) {
print('#${tag.name}');
}
Retourne les tags dont l'utilisation augmente depuis la semaine passée, triés par score de tendance interne. La limite par défaut est 10 et le maximum est 20. Utilisez offset pour la pagination.
Statuts tendance
final statuses = await client.trends.fetchStatuses(limit: 20);
Retourne les statuts ayant reçu significativement plus d'interactions que d'habitude. La limite par défaut est 20 et le maximum est 40.
Liens tendance
final links = await client.trends.fetchLinks(limit: 10);
for (final link in links) {
print(link.url);
}
Retourne les liens fréquemment partagés sur le réseau. La limite par défaut est 10 et le maximum est 20.
Ces trois méthodes acceptent un paramètre offset pour la pagination par décalage.
Gestion des images de profil
client.profile permet la suppression des images d'avatar et de bannière du profil.
Supprimer l'avatar
final account = await client.profile.deleteAvatar();
Supprimer la bannière
final account = await client.profile.deleteHeader();
Les deux méthodes retournent le MastodonCredentialAccount mis à jour et réussissent même si aucune image n'est actuellement définie. Elles nécessitent le scope OAuth write:accounts.
Pour téléverser un nouvel avatar ou une nouvelle bannière, utilisez client.accounts.updateCredentials.
Enregistrement d'application
Utilisez client.apps pour l'enregistrement d'applications OAuth et la vérification de token.
Enregistrer une application
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 est obligatoire. Pour le flux out-of-band, passez ['urn:ietf:wg:oauth:2.0:oob']. scopes vaut read par défaut si omis. Retourne MastodonCredentialApplication.
Vérifier les identifiants de l'application
final app = await client.apps.verifyCredentials();
print(app.name);
Retourne MastodonApplication. Lève une erreur d'authentification si le token est invalide.
Confirmation d'e-mail
client.emails gère le renvoi d'e-mails de confirmation pour les comptes nouvellement enregistrés.
Renvoyer l'e-mail de confirmation
await client.emails.resendConfirmation();
// Optionally update the email address at the same time
await client.emails.resendConfirmation(email: 'new@example.com');
Quand email est fourni, l'adresse e-mail non confirmée est mise à jour avant l'envoi de la confirmation.
Vérifier le statut de confirmation
await client.emails.checkConfirmation();
Les deux méthodes nécessitent un token obtenu depuis le client qui a créé le compte non confirmé.
Rafraîchissements asynchrones
client.asyncRefreshes permet de vérifier la progression des tâches de rafraîchissement en arrière-plan. Il s'agit d'une API expérimentale ajoutée dans Mastodon 4.4.0.
Lorsqu'une réponse inclut un en-tête Mastodon-Async-Refresh, la valeur est un ID qui peut être interrogé jusqu'à la fin de l'opération :
final refresh = await client.asyncRefreshes.fetch('refresh-id-from-header');
print(refresh.complete); // true when done
Retourne MastodonAsyncRefresh. Nécessite le scope OAuth read.