Вопрос

Когда пользователь пытается поделиться страницей со встроенным видео, в его статусе Facebook отображается только заголовок страницы, а не проигрыватель флэш-видео.Это происходит при совместном использовании с помощью кнопки «Добавить» или если URL-адрес публикуется непосредственно на странице Facebook.Есть идеи, как я могу заставить Facebook получать встроенное флэш-видео?

Это было полезно?

Решение

Это действительно зависит от того, как видео встроено в страницу.Facebook может обрабатывать только определенные форматы, и если он видит что-то, чего не ожидает, он по умолчанию использует отказоустойчивый стандарт «ничего не показывать».

Если встроенное видео соответствует общепризнанному стандарту (т.проигрыватель YouTube по умолчанию), он должен работать нормально.Однако если это ваш собственный видеоплеер, это не сработает.Facebook не будет вставлять Flash-объекты других людей на свой сайт.


Обновление 18 ноября

Facebook, каким бы умным он ни был, все еще нуждается в значительной помощи, чтобы определить, какой контент находится на странице.Он может быстро очистить <img /> теги, чтобы предоставить вам миниатюры страниц, но они не сканируют <object>или <embed>Потому что это может быть что угодно: от видео YouTube (которым вы хотели бы поделиться на Facebook) до навязчивого Flash-приложения (которое Facebook не хочет размещать на своем сайте).

Чтобы упростить задачу, YouTube фактически использует специальное приложение Facebook, позволяющее вам делиться видео, которые будут автоматически встроены в Facebook.Помимо прямой ссылки на это приложение, каждая видеостраница YouTube включает в заголовок дополнительную метаинформацию, которую Facebook использует для извлечения видео и встраивания его на страницу.Вот пример из видео, на которое вы дали ссылку ранее:

<meta property="fb:app_id" content="87741124305" />
<meta property="og:title" content="Cubed: Manny Pacquiao&amp;#39;s Punchout" />
<meta property="og:description" content="Manny Pacquiao is training hard for his upcoming fight with Miguel Cotto, but you might be surprised how he got to the top.  Check out this clip." />
<meta property="og:type" content="video" />
<meta property="og:url" content="http://www.youtube.com/watch?v=IvCCuuuJhd4" />
<meta property="og:image" content="http://i2.ytimg.com/vi/IvCCuuuJhd4/default.jpg" />
<meta property="og:site_name" content="YouTube" />

Связанное приложение является Приложение YouTube на Facebook.Вы также можете увидеть некоторую конкретную информацию, включенную здесь:заголовок, описание, тип, URL, изображение, имя_сайта.Все это помогает Facebook понять, что делать, когда вы «поделитесь» страницей со своими друзьями и в сети.

Кнопка «Добавить» не добавляет эту информацию в заголовок.На самом деле это невозможно, потому что он создан для простого обмена страницами, а не для обмена видео на таких веб-сайтах, как YouTube.

Так, как я уже говорил, это «зависит от того, как видео встроено на страницу». Facebook может обрабатывать видео только в определенных форматах, помеченных определенным образом, которые происходят из конкретных сайтов/приложений.

Чтобы воспроизвести функцию встроенного видео, которую есть на YouTube, вам необходимо:

  • Создайте свое собственное приложение Facebook, чтобы управлять вещами
  • Добавьте такую ​​​​же метаинформацию в свой заголовок.

Если вы хотите (и я бы рекомендовал это), более простой путь — просто очистить <meta> теги, которые использует YouTube.Поэтому, если вы добавляете видео, используйте тот же идентификатор приложения YouTube, тот же <meta> свойства, и вы должен будь готов идти.

Другие советы

Обновлять Чтобы извлечь только метатеги с атрибутом свойства, я собрал следующее:

  <?php 

ini_set('display_errors', false); 
$page = "http://www.youtube.com...(the video ID)"; 
$page_data = file_get_contents($page); 

$doc=new DOMDocument();
$doc->loadHTML($page_data);
$xml=simplexml_import_dom($doc);
$meta=$xml->xpath('//meta');
foreach ($meta as $met) 
{
 if ($met['property'] != '')
 {
     echo '<meta property="'.$met['property'] . '" content="' . $met['content']."\">\n";
 }
}
ini_set('display_errors', true); 

?>

Я знаю, что это немного взломанное, но это работает. Я думаю, что я собираюсь использовать это с одним из плагинов, встраивающих с URL -видео, и установить мета -информацию в головке шаблона.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top