Aller au contenu principal

Notifications push

L'API client.push gère les abonnements Web Push. Elle suit le protocole Web Push et permet à votre application de recevoir des notifications en arrière-plan.

S'abonner

Créez un nouvel abonnement Web Push en fournissant votre endpoint push et vos clés VAPID :

final subscription = await client.push.create(
MastodonPushSubscriptionRequest(
endpoint: 'https://push.example.com/subscription/abc123',
p256dh: '<Base64url-encoded P-256 ECDH public key>',
auth: '<Base64url-encoded authentication secret>',
standard: true,
alerts: MastodonPushAlertSettings(
mention: true,
follow: true,
reblog: true,
favourite: true,
poll: true,
),
policy: 'followed', // all | followed | follower | none
),
);

print(subscription.id);
print(subscription.serverKey); // use to verify incoming pushes

Types d'alertes

MastodonPushAlertSettings accepte toute combinaison des champs suivants. Les champs définis à null sont omis de la requête et restent inchangés.

ChampDescription
mentionMentionné dans un statut
quoteStatut cité
statusNouvelle publication d'un utilisateur suivi
reblogStatut boosté
followNouvel abonné
followRequestNouvelle demande d'abonnement
favouriteStatut ajouté aux favoris
pollUn sondage auquel vous avez voté ou créé s'est terminé
updateUn statut avec lequel vous avez interagi a été modifié
quotedUpdateUn statut cité a été modifié
adminSignUpNouvelle inscription d'utilisateur (admin uniquement)
adminReportNouveau signalement (admin uniquement)

Valeurs de politique

ValeurDescription
allRecevoir des notifications de tous les utilisateurs
followedRecevoir uniquement les notifications des utilisateurs que vous suivez
followerRecevoir uniquement les notifications de vos abonnés
noneDésactiver toutes les notifications push

Récupérer l'abonnement actuel

final subscription = await client.push.fetch();
print(subscription.endpoint);
print(subscription.alerts.mention);
print(subscription.policy);

Mettre à jour les paramètres d'alerte

Utilisez update pour modifier les paramètres d'alerte ou la politique sans recréer l'abonnement. Seule la partie data (alertes et politique) peut être modifiée.

final updated = await client.push.update(
MastodonPushSubscriptionUpdateRequest(
alerts: MastodonPushAlertSettings(
mention: true,
follow: false,
),
policy: 'all',
),
);

Se désabonner

await client.push.delete();

Supprime l'abonnement Web Push actuel. Les appels suivants à fetch lèveront une MastodonNotFoundException.

Le modèle MastodonWebPushSubscription

ChampTypeDescription
idStringID d'abonnement
endpointStringURL de l'endpoint push
serverKeyStringClé publique du serveur pour vérifier les messages push
alertsMastodonPushAlertsParamètres d'alerte actifs
policyStringPolitique de notification
standardbool?Indique si l'abonnement est conforme à la spec Web Push standardisée (Mastodon 4.4+)