veil

Ferma gli avvisi via email dal link di un’email

Spegne gli avvisi di una scheda con il token del link delle sue email, senza chiave: n e t nella query (il POST con un clic di un programma di posta, RFC 8058) oppure {"n", "token"} nel corpo.

POST/v1/notices/unsubscribe
Accesso
Crea dati temporanei
Client
Client locale o server

Parametri#

NomePosizioneSignificato
nObbligatorioQueryNumero della scheda.
tObbligatorioQueryIl token del link.

Esempi di richiesta#

cURL
curl -fsS -X POST "https://veil.rip/v1/notices/unsubscribe?n=CARD_NUMBER&t=TOKEN"

Risposta#

HTTP 200application/json

Il numero della scheda e on: false.

CampoTipoSignificato
nintegerNumero della scheda.
onbooleanSempre false.

Intestazioni della risposta#

IntestazioneValoreSignificato
Content-Typeapplication/jsonUsa il tipo dichiarato per scegliere come leggere il corpo.
DateHTTP dateOra del server. Confrontala con il tuo orologio per firmare le richieste.
Retry-Afterinteger seconds, on rate_limited or busyAttendi almeno questo intervallo prima di riprovare. Altri codici 429/503 non lo includono necessariamente.

Note d’uso#

  • Il token è la firma Ed25519 del server sul numero della scheda, quindi vale solo per quella scheda. Le email portano alla pagina /notices/stop con il numero e il token dopo il #, così non arrivano mai in un log; aprire la pagina non cambia niente finché la persona non preme il pulsante.

Errori#

Gli errori API restituiscono un oggetto error. Usa error.code nella logica del programma; error.message è un testo inglese per le persone e può cambiare. Guida a risposte ed errori

HTTPCodiceSignificato e cosa fare
400invalid_parameter

Un campo del percorso, della query o del corpo manca, è malformato o fuori intervallo.

Correggi il campo indicato in error.message prima di inviare di nuovo.

403invalid_token

Il token del link non è la firma del server per questa scheda.

Copia il link intero dall’email, oppure togli gli avvisi dalla pagina dell’account.

Errori comuni delle richieste
HTTPCodiceSignificato e cosa fare
429rate_limited

È stato superato un limite anonimo, delle richieste firmate o della chiave API.

Attendi almeno i secondi indicati da Retry-After. Condividi coda e budget dei tentativi tra i tuoi processi.

500internal_error

Si è verificato un errore imprevisto del server. I dettagli interni non vengono restituiti.

Riprova le letture con attese crescenti e un limite. Controlla l’esito delle scritture prima di inviare una nuova operazione firmata.

503busy

L’applicazione ha raggiunto un limite temporaneo di concorrenza o del database.

Attendi i secondi indicati da Retry-After e riprova con attese crescenti e un limite.