veil

Leggi una risposta oEmbed

Leggi una scheda incorporabile o l’anteprima di un URL Veil supportato.

GET/oembed
Accesso
Pubblico; chiave API facoltativa
Client
Fetch dal browser supportato

Parametri#

NomePosizioneSignificato
urlObbligatorioQueryURL Veil di una persona, organizzazione o verifica /v/.
formatQueryjson. XML non è supportato.
maxwidthQueryLarghezza massima facoltativa. Sotto 280 produce una risposta link.
maxheightQueryAltezza massima facoltativa. Sotto 200 produce una risposta link.

Esempi di richiesta#

cURL
curl -fsS 'https://veil.rip/oembed?url=https%3A%2F%2Fveil.rip%2Fo%2Fveil&format=json'
javascript
const response = await fetch("https://veil.rip/oembed?url=https%3A%2F%2Fveil.rip%2Fo%2Fveil&format=json");
const result = await response.json();

Prova la richiesta#

Risposta#

HTTP 200application/json

Una scheda può restituire type rich con HTML del widget, dimensioni e metadati della miniatura. Limiti piccoli o link di verifica restituiscono type link.

CampoTipoSignificato
versionstringVersione 1.0 del protocollo oEmbed.
typestringrich per il widget di una scheda; link per i link di verifica o dimensioni restrittive.
provider_namestringVeil.
provider_urlstringURL di base della rubrica.
cache_ageintegerDurata suggerita della cache in secondi.
titlestringTitolo leggibile.
author_namestring, optionalNome visualizzato, se noto.
author_urlstring, optionalURL permanente della scheda dell’autore.
htmlstring, optionalHTML dell’iframe per type=rich.
widthinteger, optionalLarghezza del widget per type=rich.
heightinteger, optionalAltezza del widget per type=rich.
thumbnail_urlstring, optionalImmagine della scheda generata dal server.
thumbnail_widthinteger, optionalLarghezza dell’anteprima in pixel.
thumbnail_heightinteger, optionalAltezza dell’anteprima in pixel.

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.
Cache-Controlpublic, max-age=300Le anteprime del server possono restare in cache per cinque minuti.
Retry-Afterinteger seconds, on rate_limited or busyAttendi almeno questo intervallo prima di riprovare. Altri codici 429/503 non lo includono necessariamente.

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.

404not_found

La scheda, la chiave, l’alias, il codice o la risorsa richiesti non sono stati trovati.

Controlla l’identificatore. Codici e anteprime temporanei potrebbero essere scaduti o già usati.

501format_not_implemented

Sono supportate soltanto le risposte oEmbed in JSON.

Richiedi format=json.

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.