Cosa fa
Trasforma questo tipo di risultato:
(dove il tuo server non è riuscito a recuperare il codice sorgente della pagina e quindi non può estrarre i tag necessari per costruire la onebox)
In questo!:
Fornisce semplicemente un percorso alternativo per permettere alla onebox di ottenere il codice sorgente della pagina necessario per cercare i metadati quando il server di destinazione rifiuta la tua connessione.
Non cambia nulla nel modo in cui la onebox elabora successivamente il codice sorgente della pagina per trovare i metadati e rendere la box.
È pensato per permetterti di inserire i dettagli e le credenziali di un’API di terze parti per recuperare la pagina invece di effettuare una normale chiamata HTTP direttamente alla pagina di destinazione.
Perché
Ho notato che i miei server venivano bloccati dall’accesso a diversi siti commerciali, causando il fallimento del rendering delle onebox. In sostanza, aiuta a sfruttare l’affidabilità di un’API di terze parti, un po’ come un servizio di posta.
Perché è conveniente
Puoi utilizzare un VPS relativamente economico ma ottenere comunque una funzionalità di one-boxing affidabile, anche se il tuo IP o user agent sono in qualche modo “in blacklist”.
Non ti serve se
Stai già ottenendo correttamente le onebox per tutto il tuo contenuto target con l’installazione standard e tutti gli utenti sono soddisfatti.
Prerequisiti
Hai bisogno di un account con un’API di terze parti adatta.
Impostazioni
onebox assistant api base address: https://api.embed.rocks/api/
L’esempio sopra utilizza embed.rocks, ma in futuro potrebbe essere aggiunto il supporto per altre API; tuttavia, al momento embed.rocks offre un buon rapporto qualità-prezzo.
onebox assistant api base query: ?url=
onebox assistant api options: &skip=article,description,oembed,imextra&include=source
onebox assistant api page source field: source
Dovrai anche inserire la tua chiave API fornita da embed.rocks.
Vedi l’esempio sottostante:
Questa impostazione ti permette di ignorare il prefetch (per verificare se il crawl diretto restituisce un risultato) e utilizzare l’API fin dall’inizio.

di default OFF
Consiglio di impostare questa opzione su TRUE.
È ovviamente più costoso, ma spesso produce risultati migliori, poiché ci sono casi in cui il prefetch viene reindirizzato alla pagina sbagliata perché non sei considerato attendibile.
Informazioni sul supporto
Ricorda che se hai già tentato di creare una onebox per un link, il core di Discourse memorizzerà il risultato nella cache.
Puoi aggiungere una stringa di query casuale alla fine per superare la cache: https://mylink.com/todaynews?random=random
Puoi anche verificare che l’API stia rispondendo, ad esempio con:
curl -X GET "https://api.embed.rocks/api/?url=https%3A%2F%2Fnews.bbc.co.uk%0A&skip=article,description,oembed,imextra&include=source" -H "x-api-key: %%%your-api-key%%%"
Devi codificare in URL il sito che stai chiamando (il valore del parametro url) utilizzando un sito come questo (non garantito!).
Limitazioni note
-
È stato testato finora solo con un provider e non su altri. Tale provider è https://embed.rocks (con il quale non ho alcuna affiliazione). Sono disponibile a valutare il supporto per altri servizi se il lavoro viene sponsorizzato.
-
La modifica (monkey patching) viene eseguita a livello di metodo. Questo sovrascrive più codice del necessario, aumentando il rischio che il plugin si rompa dopo un aggiornamento del core. Tuttavia, non penso esista un modo per minimizzare ulteriormente questo aspetto?
Come installare i plugin
Vedi la guida qui: Install plugins on a self-hosted site
Questo repository è: https://github.com/merefield/discourse-onebox-assistant
https://github.com/merefield/discourse-onebox-assistant
Tutti i feedback sono benvenuti. Per favore
il progetto su GitHub se lo trovi utile.



