Проблема также проявляется на нескольких взрослых сайтах, где участники пытались делиться ссылками; я провёл быстрое тестирование, вставив множество видео-URL с разных платформ, и оказалось, что несколько крупных взрослых сайтов тоже не работают.
Это кажется относительно серьёзной ошибкой, поскольку она влияет на встраивание видео с Facebook. Моим участникам (менее технически подкованным) нравится делиться ссылками на Facebook, отчасти потому, что эта платформа очень популярна и универсальна. Кроме того, если кто-то публикует такой URL в сообщении, он преобразуется в нерабочий формат, а исходная ссылка исчезает. Так что даже если вы захотите перейти по этому URL, это будет невозможно — он больше недоступен.
Так… возможно ли настроить Discourse так, чтобы он НЕ пытался автоматически встраивать видео с этих доменов? Я искал настройку вроде «черный список URL с этими словами для запрета встраивания медиа», где можно было бы добавить эти домены. (Или, возможно, белый список одобренных URL, таких как YouTube и Vimeo, чтобы предотвратить будущие проблемы с новыми сайтами.)
Если это невозможно, есть ли какое-то быстрое решение, которое я могу применить на своих форумах?
Да, я бы сказал, что это критично. Для меня не проблема, если Discourse не поддерживает видео с Facebook. Проблема в том, когда участник вставляет ссылку (что совсем не редкость), появляется сообщение об ошибке… и исходная ссылка исчезает. У меня в форуме сейчас несколько таких сообщений. Мы, администраторы, исправляем их вручную по мере обнаружения, но, очевидно, это не лучшее решение.
Я считаю, что это серьёзный баг, но только потому, что Facebook (как и другие видеосайты, которые я тестировал) чрезвычайно популярен.
Мне бы очень хотелось найти быстрое решение… Дайте знать, если я могу помочь?
Самое быстрое решение здесь — добавить www.facebook.com в настройку: onebox domains blacklist. Таким образом, onebox не будет пытаться встраивать видео с facebook.com.
Приведённая выше ссылка на видео выдаёт ошибку: Bad URL timestamp.
Даже ссылка в теге og:image выдаёт ту же ошибку.
У нас нет никакой информации для отображения в однобоксе Facebook, кроме заголовка видео. Думаю, нам стоит жёстко прописать в однобоксе чёрный список ссылок на видео Facebook.
Кстати, напоминаю, что это происходит и на других сайтах, кроме Facebook; один участник попытался опубликовать ссылку на страницу видео на xvideos.com, и это тоже не сработало. (Предупреждение 18+! Это ОЧЕНЬ взрослый сайт!) Я протестировал несколько других сайтов и обнаружил то же самое.
Я не думаю, что ссылка устареет, так как URL в основном указывает на плагин Facebook, который встраивает видео для любой ссылки на видео, переданной в параметре href.
Нет, это исправление будет специфичным для Facebook.
Обратите внимание, что сбой при отображении видео в onebox обычно указывает на то, что ошибка находится на сайте, который вы пытаетесь встроить. В случае с Facebook проблема заключалась в излишних ограничениях со стороны Facebook, разрешавших воспроизведение видео только в течение определённого времени.
Мы обычно обходим такие ошибки только для очень популярных сайтов (например, Instagram), чтобы выгоды могли получить более широкие сообщества. Если сайт не является популярным, а вам нужно встроить его на свой ресурс, рекомендуемый способ — создать собственный плагин, добавив кастомный движок Onebox для этого сайта.
Хм. Есть ли способ добавить домены в белый список, чтобы onebox пытался встраивать их содержимое? Если нет, то получается следующая ситуация:
Я администрирую форум сообщества, где участники любят ссылаться на сайты с видео. (Это могут быть любые сайты, разумеется… сейчас мы этого не знаем.)
Если на сайте есть ошибка в коде, из-за которой встраивание не работает, Discourse искажает вставку (выглядит плохо), и, что ещё хуже, удаляет исходную ссылку, поэтому другие не могут увидеть, что именно хотел поделиться автор темы.
Разве шаг 2 не должен звучать так: «Если на сайте есть ошибка в коде, из-за которой встраивание не работает, Discourse прекращает попытки встраивания и просто оставляет ссылку как есть?»
Я не могу исправить это с помощью чёрного списка, потому что не знаю, какие домены затронуты этой проблемой, и, конечно, любой сайт может столкнуться с такой проблемой в будущем. Точно так же, как мы видели это здесь с Facebook.
Хорошо, это приемлемо. У меня нет четкого представления о том, насколько это серьезная проблема; ручная обработка — отличное решение, если таких доменов немного.
Тем не менее, я по-прежнему считаю, что Discourse должен обрабатывать некорректные внешние данные более изящно, чем просто «создавать огромное сообщение об ошибке и удалять самое важное содержимое из первого сообщения темы» — и, думаю, вы тоже так считаете. Но пока черный список — это допустимое обходное решение. Спасибо.