Was es tut
Verwandelt dieses Ergebnis:
(wobei Ihr Server die Seitenquelle nicht abrufen konnte und daher die erforderlichen Tags zum Erstellen der Onebox nicht extrahieren konnte)
In dieses hier!:
Es bietet einfach einen alternativen Pfad für die Onebox, um ihre Seitenquelle zu erhalten, mit der sie nach Metadaten suchen kann, wenn der Zielservers die Verbindung verweigert.
Es ändert nichts daran, wie die Onebox die Seitenquelle dann verarbeitet, um Metadaten zu finden und die Box darzustellen.
Es soll Ihnen ermöglichen, die Details und Zugangsdaten einer Drittanbieter-API einzugeben, um die Seite abzurufen, anstatt einen normalen HTTP-Aufruf direkt an die Zielseite zu tätigen.
Warum
Ich stellte fest, dass meine Server den Zugriff auf eine Reihe kommerzieller Websites verweigert wurde, sodass Oneboxes nicht gerendert werden konnten. Es hilft im Wesentlichen, die Vertrauenswürdigkeit der Drittanbieter-API zu nutzen, ähnlich wie ein E-Mail-Dienst.
Warum es kosteneffektiv ist
Sie können einen relativ günstigen VPS verwenden und erhalten dennoch eine zuverlässige Onebox-Funktionalität, selbst wenn Ihre IP-Adresse oder Ihr User-Agent irgendwie „schwarzgelistet" sind.
Sie brauchen es nicht, wenn
Sie alle Ihre Zielinhalte mit der Standardinstallation einwandfrei als Onebox darstellen und alle Benutzer zufrieden sind.
Voraussetzungen
Sie benötigen ein Konto bei einer geeigneten Drittanbieter-API.
Einstellungen
onebox assistant api base address: https://api.embed.rocks/api/
Das obige Beispiel verwendet embed.rocks, aber in Zukunft könnte die Unterstützung für andere APIs hinzugefügt werden. Derzeit ist embed.rocks jedoch relativ preiswert.
onebox assistant api base query: ?url=
onebox assistant api options: &skip=article,description,oembed,imextra&include=source
onebox assistant api page source field: source
Sie müssen auch Ihren von embed.rocks bereitgestellten API-Schlüssel eingeben.
Siehe Beispiel unten:
Diese Einstellung ermöglicht es Ihnen, das Vorabladen (um zu prüfen, ob der direkte Crawl ein Ergebnis liefert) zu ignorieren und die API von Anfang an zu verwenden.

Standardmäßig AUS.
Ich empfehle, dies auf WAHR zu setzen.
Dies ist natürlich teurer, liefert aber oft bessere Ergebnisse, da es Fälle gibt, in denen das Vorabladen auf die falsche Seite umgeleitet wird, weil Sie nicht vertrauenswürdig sind.
Support-Informationen
Denken Sie daran: Wenn Sie zuvor versucht haben, einen Link als Onebox darzustellen, zwischenspeichert Discourse Core das Ergebnis.
Sie können am Ende eine zufällige Abfragezeichenfolge hinzufügen, um den Cache zu umgehen: https://mylink.com/todaynews?random=random
Sie können auch prüfen, ob die API antwortet, z. B. mit:
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%%%"
Sie müssen die aufgerufene Website (den Wert des Parameters url) mit einer Site wie dieser wie hier (nicht empfohlen!) URL-kodieren.
Bekannte Einschränkungen
-
Es wurde bisher nur mit einem Anbieter getestet und nicht mit anderen. Dieser Anbieter ist https://embed.rocks (mit dem ich keine Verbindung habe). Ich bin gerne bereit, weitere Dienste zu unterstützen, wenn die Arbeit gesponsert wird.
-
Das Monkey-Patching erfolgt auf Methodenebene. Dies überschreibt mehr Code als nötig, was zu einem höheren Risiko führt, dass das Plugin nach einem Core-Update nicht mehr funktioniert. Ich denke jedoch nicht, dass es eine Möglichkeit gibt, dies weiter zu minimieren?
Wie man Plugins installiert
Siehe die Anleitung hier: Install plugins on a self-hosted site
Dieses Repository ist: https://github.com/merefield/discourse-onebox-assistant
https://github.com/merefield/discourse-onebox-assistant
Alle Rückmeldungen sind willkommen. Bitte
es auf GitHub, wenn Sie es nützlich finden.



