ich habe ein Plugin erstellt, das die Onebox-Funktionalität für eine Website erweitert, die von vielen Nutzern meines Forums verwendet wird.
Diese Onebox zeigt auch ein Bild von der genannten Website an. Gibt es eine Möglichkeit, das Bild lokal zu speichern, damit die Onebox nicht kaputtgeht, wenn sich das Bild auf der Quell-Website ändert?
Ich habe gesehen, dass eine solche Funktion im Forum verfügbar ist, aber ich kann nicht herausfinden, wie ich sie in dem von mir erstellten Plugin aufrufen kann.
Vielen Dank im Voraus!
PS: Hier ist das GitHub-Repository des von mir erstellten Plugins. Jegliches Feedback zu meinem Code wäre sehr willkommen.
(Es ist das erste Mal, dass ich in Ruby programmiere, nachdem ich zuvor im NodeJS-Backend-Bereich tätig war).
Onebox und Discourse übernehmen dies nativ, ohne zusätzliche Plugins.
Sie müssen lediglich sicherstellen, dass die Zielwebsite die entsprechenden og-Meta-Tags generiert. Falls Änderungen erforderlich sind, müssen diese an der Zielwebsite vorgenommen werden, nicht an Discourse, damit dies funktioniert.
Die BBC-Website generiert diese Meta-Tags für jede Seite. Discourse und Onebox ziehen sich site_name, image, description und title und erstellen daraus die Onebox.
Stellen Sie einfach sicher, dass Ihre Zielwebsite diesem Standard folgt, und Sie sollten nichts weiter tun müssen.
Das ergibt Sinn, da Ihre Website dann auch für Vorschauen auf anderen Plattformen, z. B. Facebook, vorbereitet ist.
Ich gehe davon aus, dass Sie die Kontrolle über oder Einfluss auf diese Website haben – was jedoch eine große Annahme sein könnte!
Wenn dies nicht möglich ist, müssen Sie eine benutzerdefinierte Engine in Onebox erstellen, die die Einzigartigkeit dieser Website erkennt und nach den entsprechenden Metadaten durchsucht. Die Nokogiri-Bibliothek ist das geeignete Werkzeug für diese Aufgabe.
Leider nicht Außerdem möchte ich die Onebox-Ansicht etwas anpassen. Das wäre mit der Standard-Engine nicht möglich.
Aber…
Ich habe bereits die Onebox-Erweiterung entwickelt. Sie übernimmt das gesamte Abrufen der Daten und funktioniert einwandfrei!
Die Frage ist nur: Wie kann ich sicherstellen, dass das abgerufene Bild lokal gespeichert wird? Ich nehme an, ich muss dafür etwas zusätzlichen Code im Plugin schreiben.
Wenn Sie es geschafft haben, die direkt verlinkten Bilder wieder in den Beitrag einzufügen, die Bilder die Kriterien erfüllen und die Einstellungen sicherstellen, dass externe Bilder hochgeladen werden, sollte dies funktionieren.
Wenn dies noch nicht funktioniert, Sie die externen Bilder jedoch erfolgreich in der Onebox anzeigen können, vermute ich, dass die Bilder die Kriterien für das Hochladen nicht erfüllen.