Assistenza Onebox, esegui la scansione di quelle anteprime in modo affidabile!

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.

image
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 :star: il progetto su GitHub se lo trovi utile.

41 Mi Piace