从WordPress上在Facebook上分享视频
-
16-10-2019 - |
题
当用户试图与嵌入式视频共享页面时,只有页面的标题显示在其Facebook状态而不是Flash Video Player上。在使用Addthis按钮或直接将URL发布到Facebook页面时,这会发生这种情况。知道我如何如何使Facebook拾取嵌入式Flash视频?
解决方案
这实际上取决于视频如何嵌入页面。 Facebook只能处理特定格式,如果看到它没有预期的东西,它将默认为“不显示”标准的故障安全。
如果嵌入式视频是公认的标准(即YouTube的默认播放器),则应正常。但是,如果这是您自己的自托视频播放器,那将无法使用。 Facebook不会在其网站上嵌入其他人的Flash对象。
更新11/18
Facebook虽然很聪明,但仍然需要大量帮助才能确定页面上的内容。它可以快速刮擦 <img />
标签可以给您页面缩略图,但不会扫描 <object>
S或 <embed>
S,因为这些可能是从YouTube视频(您希望在Facebook上共享)到Intruseflas Flash应用程序(Facebook在其网站上不想要的)。
为了使事情变得更容易,YouTube实际上使用了特定的Facebook应用程序,使您可以共享将自动嵌入Facebook的视频。除了直接链接到此应用程序外,每个YouTube视频页面还包括其标题中的其他元信息,Facebook用来刮擦视频并将其嵌入到页面中。这是您之前链接到的视频中的一个示例:
<meta property="fb:app_id" content="87741124305" />
<meta property="og:title" content="Cubed: Manny Pacquiao&#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,Image,site_name。所有这些都可以帮助Facebook弄清楚当您将页面“分享”到您的朋友和网络时该怎么办。
Addthis按钮不会将任何此信息添加到标题中。它确实不能,因为它构建的是允许简单的页面共享,而不是为YouTube等视频网站共享电源。
因此,正如我之前所说,这“取决于视频如何嵌入页面中”。 Facebook只能以特定方式标记的特定格式处理视频,该视频源自特定的网站/应用程序。
要复制YouTube具有的嵌入式视频功能,您需要:
- 创建自己的Facebook应用程序来供电
- 向标题添加相同类型的元信息
如果您想要(我建议这样做),那么更容易的路线就是刮擦 <meta>
标签YouTube使用。因此,如果添加视频,请使用相同的YouTube应用程序ID,相同 <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视频嵌入插件之一一起使用,并将元信息设置在模板头部。