Das Problem tritt auch bei einigen Erwachsenenseiten auf, auf denen Mitglieder versuchten, Links zu teilen; ich habe einen kurzen Test durchgeführt, bei dem ich eine Reihe von Video-URLs von verschiedenen Orten eingefügt habe – mehrere der wichtigsten Erwachsenenseiten funktionieren ebenfalls nicht.
Dies scheint ein relativ schwerwiegender Fehler zu sein, da er nur die Einbettungen für Facebook betrifft. Meine (weniger technikaffinen) Mitglieder teilen gerne Links zu Inhalten auf Facebook, unter anderem weil diese Plattform so beliebt und universell ist. Außerdem wird eine solche URL, wenn jemand sie in eine Nachricht postet, in etwas umgewandelt, das nicht funktioniert, und die ursprüngliche URL ist weg. Man kann also nicht einmal mehr auf diese URL zugreifen, wenn man wollte … sie ist überhaupt nicht mehr verfügbar.
Also … ist es möglich, Discourse anzufweisen, bei diesen Domains NICHT automatisch Videos einzubetten? Ich habe nach einer Einstellung wie „URLs mit diesen Wörtern von der Medien-Einbettung ausschließen“ gesucht, in der ich diese Domains hinzufügen könnte. (Oder vielleicht eine Whitelist mit genehmigten URLs wie YouTube und Vimeo, um zukünftige Probleme mit neuen Seiten im Voraus zu vermeiden.)
Wenn das nicht geht, gibt es dann eine schnelle Lösung, die ich auf meinen Foren umsetzen kann?
Ja, das würde ich als kritisch einstufen. Es ist mir nicht wichtig, ob Discourse Facebook-Videos nicht unterstützt. Es ist jedoch ein großes Problem, wenn ein Mitglied einen Link einfügt (was kaum ungewöhnlich ist) und dies eine Fehlermeldung auslöst … und der ursprüngliche Link verschwunden ist. Ich habe derzeit mehrere solche Nachrichten in meinem Forum. Wir Administratoren beheben sie manuell, sobald wir sie bemerken, aber das ist offensichtlich keine gute Lösung.
Ich halte dies für einen schwerwiegenden Fehler, nur weil Facebook (zusammen mit anderen von mir getesteten Videoseiten) extrem populär ist.
Ich würde gerne eine schnelle Lösung finden … lass mich wissen, ob ich helfen kann?
Die schnellste Lösung hier wäre, www.facebook.com zur Einstellung onebox domains blacklist hinzuzufügen. Auf diese Weise versucht Onebox nicht, Videos von facebook.com einzubetten.
Der obige Video-Link zeigt den Fehler: Bad URL timestamp.
Selbst der Link im og:image-Tag zeigt denselben Fehler.
Wir haben keine Informationen, die wir in der Facebook-Onebox anzeigen können, außer dem Videotitel. Ich denke, wir sollten die Onebox so hardcoden, dass sie Facebook-Video-Links ausschließt.
Übrigens eine Erinnerung daran, dass dies auch bei anderen Seiten als Facebook auftritt; ein Mitglied versuchte, einen Link zu einer Videoseite auf xvideos.com zu posten, was ebenfalls fehlschlug. (NSFW-Warnung! Das ist SEHR WENIG eine Erwachsenenseite!) Ich habe es mit einigen anderen Seiten getestet und dasselbe festgestellt.
Ich glaube nicht, dass der Link abläuft, da die URL im Grunde auf ein Facebook-Plugin verweist, das ein Video einbettet, unabhängig davon, welchen Videolink wir im href-Parameter übergeben.
Beachten Sie, dass ein fehlerhaftes Video-Onebox normalerweise darauf hinweist, dass der Fehler auf der Seite liegt, die Sie einbetten möchten. Im Fall von Facebook war es Facebook, das zu restriktiv war und die Videowiedergabe nur für eine bestimmte Zeitspanne zuließ.
Wir umgehen diese Fehler in der Regel nur bei sehr beliebten Seiten (Beispiel: Instagram), damit die breitere Gemeinschaft davon profitieren kann. Wenn die Seite nicht beliebt ist und Sie sie auf Ihrer eigenen Seite einbetten möchten, ist der empfohlene Weg, ein benutzerdefiniertes Plugin zu erstellen, das eine benutzerdefinierte Onebox-Engine für diese Seite hinzufügt.
Hmm. Gibt es eine Möglichkeit, Domains zu whitelisten, die Onebox versuchen wird einzubetten? Falls nicht, scheint sich folgende Situation zu ergeben:
Ich betreibe ein Community-Forum, in dem Mitglieder gerne Links zu Seiten mit Videos teilen. (Das könnten natürlich beliebige Seiten sein – wir wissen es im Moment nicht.)
Wenn eine Seite einen Fehler in ihrem Code hat, der das Einbetten verhindert, verzerrt Discourse das Embed (hässlich) und entfernt im schlimmsten Fall sogar die ursprüngliche URL, sodass andere nicht mehr sehen können, was der ursprüngliche Poster teilen wollte.
Sollte Schritt 2 nicht vielmehr lauten: „Wenn eine Seite einen Fehler in ihrem Code hat, der das Einbetten verhindert, stellt Discourse den Versuch des Einbettens ein und lässt stattdessen den Link einfach durch?
Ok, das ist in Ordnung. Ich habe kein gutes Gefühl dafür, wie groß das Problem ist; die manuelle Bearbeitung ist eine hervorragende Lösung, wenn es nicht viele Domains mit diesem Problem gibt.
Ich bin immer noch der Meinung, dass Discourse fehlerhafte externe Daten auf eine elegantere Weise behandeln sollte als nur „eine riesige Fehlermeldung erstellen und den wichtigsten Inhalt aus dem Beitrag des OPs entfernen