„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“

Entschuldigung, ich hatte noch keine Gelegenheit, unsere Website mit diesem Addon aktiviert neu aufzubauen. Ich werde das heute Abend nachholen.

@WaitroseCarpark Ich habe nichts dergleichen ausgefüllt. Die Schritte, die ich befolgt habe, waren:

Schritt 1:

Schritt 2:

Schritt 3:

Schritt 4:
Führe den Roboter-Check durch

Schritt 5:
Füge die oEmbed-API hinzu


Unterschreibe dein Leben weg

Grüner Haken für oEmbed

Schritt 6:
Hole dir Zugangsdaten unter Einstellungen > Basis

Schritt 7:
Hole dir einen App-Token

Mit den oben genannten Zugangsdaten führe aus:

curl -X GET "https://graph.facebook.com/oauth/access_token?client_id={deine-app-id}&client_secret={dein-geheimer-app-schlüssel}&grant_type=client_credentials"

Dies gibt zurück:

{"access_token":"378384926723309|xxxxxx","token_type":"bearer"}

Teste deinen Authentifizierungstoken:

curl -X GET \ "https://graph.facebook.com/v9.0/instagram_oembed?url=https://www.instagram.com/p/fA9uwTtkSN/&access_token=xxxx..."

Dies gibt zurück:

{"version":"1.0","author_name":"diegoquinteiro","provider_name":"Instagram","provider_url":"https:\/\/www.instagram.com\/","type":"rich","width":658,"html":"\u003Cblockquote class=\"instagram-media\" data-instgrm-captioned data-instgrm-permalink=\"https:\/\/www.instagram.com\/p\/fA9uwTtkSN\/?utm_source=ig_embed&utm_campaign=loading\" ....

Füge es zu Discourse hinzu und du bist fertig!

6 „Gefällt mir“

Wow…

Okay, das hat funktioniert…

Danke, Mann :bowing_man:

4 „Gefällt mir“

Mit dem installierten Plugin? @Richie

1 „Gefällt mir“

@znedw Vielen Dank, dass du dir die Zeit genommen hast, das Schritt für Schritt zu erklären (mit Bildern! :heart_eyes:)! Soweit ich das übersehen kann, funktioniert das einwandfrei!

3 „Gefällt mir“

mit dem installierten Plugin?

1 „Gefällt mir“

Ich habe erst jetzt bemerkt, dass du dieses Plugin erstellt hast… Ich habe es nicht benutzt, sorry, dass ich deinen Thread gekapert habe.

Aber ich werde es heute später ausprobieren, wenn ich etwas Zeit finde…

2 „Gefällt mir“

Ich habe heute Abend etwa eine halbe Stunde damit verbracht, alle möglichen Permutationen auszuprobieren, Robert @merefield.

Nach den von @znedw bereitgestellten Schritten (danke noch einmal, Mann!) scheint diese Methode sowohl mit aktiviertem Onebox Assistant als auch mit deaktiviertem (über das Admin-Panel, Plugins, Kontrollkästchen) zu funktionieren.

Ich habe es noch nicht versucht, mein Discourse neu zu erstellen, wobei das Plugin vollständig entfernt wurde.

Vielleicht ist es erwähnenswert, dass ich die Option “Immer den Proxy-Crawl verwenden, unabhängig von der direkten Antwort” NICHT aktiviert habe.

Abseits des Themas: Es scheint, dass amazon.co.uk wieder alle möglichen Anfragen blockiert, sowohl direkt (Plugin deaktiviert) als auch über die “Ausprobieren”-Seite von embed.rocks, die ebenfalls eine Zeitüberschreitung verursacht :roll_eyes:

3 „Gefällt mir“

Danke. Ja, ich habe erwartet, dass es zumindest ohne „Proxy immer verwenden

2 „Gefällt mir“

Was Amazon angeht, verwende ich ohnehin immer manuell ihre Affiliate-Links, die nicht blockiert werden.

Oneboxing verstößt gegen ihre AGB, wenn Sie ein Affiliate sind.

Ich kann Ihnen die Affiliate-Mitgliedschaft nur wärmstens empfehlen. Sie bringt zwar kein Vermögen ein, kann aber die Server- und E-Mail-Gebühren decken.

1 „Gefällt mir“

Ist es möglich, dieses Plugin nur für YouTube-Links zu verwenden? Ich verstehe nicht, welche Einstellungen ich dafür verwenden soll.
Und wo finde ich weitere Informationen zu den möglichen Einstellungen?
Vielen Dank!

Nein. Du müsstest den Code forken und weiterentwickeln.

Kopiere diese einfach genau wie im Eröffnungspost (OP). Du erhältst dann deinen eigenen Schlüssel.

2 „Gefällt mir“

Wie kann ich überprüfen, ob das Plugin funktioniert und die Anfragen über https://embed.rocks gesendet werden? Ich habe es aktiviert, aber der Fehler ist weiterhin vorhanden.

Ich habe mit diesen Videos getestet:

https://www.youtube.com/watch?v=_2wfBNUnOVY
https://www.youtube.com/watch?v=qLNhVC296YI
1 „Gefällt mir“

Das Dashboard auf embed.rocks sollte Ihre Aufrufe widerspiegeln (ein lokaler Zähler wäre wünschenswert, wurde aber noch nicht implementiert).

Beide Links funktionieren für mich über das Plugin.

Wenn es nicht funktioniert, prüfen Sie bitte diese Option:

image

2 „Gefällt mir“

Sind alle deine Einstellungen identisch mit denen auf dem Bild, das du gesendet hast? Vielleicht habe ich sie beim Eingeben falsch eingegeben. Gibt es eine Möglichkeit, sie zu kopieren?

1 „Gefällt mir“

Ich habe den Klartext für dich in den OP eingefügt.

3 „Gefällt mir“

Danke. Ich habe es überprüft, und alles war korrekt. Ich kann auf der Dashboard-Seite im Abschnitt „Nutzung

1 „Gefällt mir“

Diese Frage müsstest du an embed.rocks richten. Irgendwann werde ich möglicherweise zusätzliche Protokollierung für das Plugin hinzufügen, was helfen könnte. Du könntest versuchen, dein Site-Protokoll auf den Level ‘info’ zu setzen, um weitere Informationen zu erhalten, da bereits Aufrufe von Rails.logger.info vorhanden sind.

1 „Gefällt mir“

Ja, das wäre super. Denn ich habe das Plugin jetzt aktiviert und die Einstellungen konfiguriert, aber YouTube funktioniert nicht und es gibt keine Aktivität im Dashboard. Ich habe eine E-Mail an den Support von embed.rocks gesendet.

1 „Gefällt mir“

Funktioniert dieses Plugin korrekt, wenn ich Dateien bei Amazon S3 speichere?

Ich habe immer noch Schwierigkeiten damit und kann es nicht zum Laufen bringen. Videos werden nicht hochgeladen – nur Links. Außerdem gibt es keine Informationen im Nutzungspanel unter Embed.rocks.

Ich habe einen Testserver. Die Dateien werden lokal darauf gespeichert. Aber auch das Plugin funktioniert nicht und es gibt keine Aktivität im Nutzungsdashboard. Die Videos werden jedoch auf der Website gespeichert.

Ich kann also nicht verstehen, wie ich vorgehen soll und was ich überprüfen muss, um das Problem zu lösen.

Bitte helfen Sie mir mit Ihren Ideen.

2 „Gefällt mir“