„Onebox Assistant“, crawle zuverlässig nach diesen Vorschauen!

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.

image
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 :star: es auf GitHub, wenn Sie es nützlich finden.

41 „Gefällt mir“