veil

Salva una scheda come contatto

Scarica la scheda di una persona come vCard per il telefono o la posta: il nome, l’indirizzo della scheda, gli account verificati e le 12 parole.

GET/u/{card}.vcf
Accesso
Pubblico; chiave API facoltativa
Client
Fetch dal browser supportato

Parametri#

NomePosizioneSignificato
cardObbligatorioPercorsoIl numero permanente della scheda di una persona o il suo alias corrente.
langQueryen oppure it: le parole della nota e la lista delle parole dell’impronta. La lingua predefinita è l’inglese.

Esempi di richiesta#

cURL
curl -fsS -o veil-1.vcf 'https://veil.rip/u/1.vcf'

Risposta#

HTTP 200text/vcard

Una vCard 4.0 (text/vcard): FN e N con il nome della scheda, UID e URL con l’indirizzo permanente (e l’alias), EMAIL per ogni email verificata, URL per ogni account GitHub, Discord, dominio e Fediverso verificato, PHOTO con l’immagine del profilo (un piccolo PNG nel file, o un GIF per indirizzo), NOTE con l’impronta di 12 parole e dove controllarla, REV e SOURCE.

Intestazioni della risposta#

IntestazioneValoreSignificato
Content-Typetext/vcard; charset=utf-8Una vCard 4.0 in UTF-8, con gli a capo CRLF.
Cache-Controlno-cacheRichiedilo ogni volta: una chiave tolta esce subito dal file.
Content-Dispositionattachment; filename="veil-<n>.vcf"Si salva con il numero della scheda, mai con il nome.

Cosa verificare#

Prima di fidarti di un contatto salvato per qualcosa che conta, apri la scheda che nomina e confronta le 12 parole con quelle della nota: la scheda controlla le sue chiavi nel tuo browser, il file no.

Note d’uso#

  • Il file è la parola del server, fatto dagli stessi dati delle anteprime della scheda. La sua nota lo dice, e nomina la scheda dove il controllo si fa nel browser di chi legge.
  • Solo per una scheda che si mostra com’è: mai per una sospesa, chiusa o rimossa, o il cui nome lo staff di Veil ha nascosto. Le organizzazioni non hanno un file di contatto.
  • Nessuna piattaforma che la rubrica collega oggi ha un indirizzo di messaggistica standard, quindi il file non ha righe IMPP: Discord, GitHub, un dominio e il Fediverso sono URL di profilo.

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
404not_found

Nessuna scheda di persona ha questo numero o alias; oppure la scheda è di un’organizzazione, è sospesa, o lo staff di Veil ne ha nascosto il nome, quindi non ha un file di contatto.

Apri la scheda per vederne lo stato. Il file di contatto torna quando la scheda si mostra di nuovo com’è.

410erased

La scheda è stata chiusa o rimossa, quindi non ha un file di contatto.

Togli il contatto che ne avevi salvato, o segnalo come chiuso.

Quando usi una chiave API facoltativa
HTTPCodiceSignificato e cosa fare
401invalid_api_key

La credenziale Bearer è malformata, sconosciuta, scaduta o revocata.

Usa una chiave attiva. Per l’accesso pubblico anonimo, rimuovi del tutto Authorization. Credenziali non valide non attivano automaticamente l’accesso anonimo.

403api_key_scope

La chiave API non ha il permesso read o verify, oppure l’endpoint non accetta chiavi Bearer.

Usa il permesso corretto. Le modifiche alle schede e la gestione delle chiavi richiedono una firma del dispositivo.

403api_key_suspended

Questa chiave API è sospesa.

Chiedi allo staff di ripristinarla; un’altra chiave non rimuove la sospensione dell’account.

403developer_suspended

L’account API del titolare è sospeso oppure la scheda titolare non è disponibile.

Controlla l’account titolare e le restrizioni dello staff. Creare un’altra chiave non aggira la sospensione.

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.