web-dev-qa-db-ja.com

ワードプレスからFacebookでビデオを共有する

ユーザーが埋め込みビデオのあるページを共有しようとすると、Facebookのステータスにはページのタイトルのみが表示され、Flashビデオプレーヤーは表示されません。これは、addthisボタンと共有している間、またはURLがFacebookのページに直接投稿されている場合に発生します。どのように私はFacebookの組み込みフラッシュビデオをピックアップさせることができますか?

2
TonyK

それはビデオがどのようにページに埋め込まれるかに本当に依存します。 Facebookは特定の形式のみを処理でき、予期しないものが見つかった場合は、デフォルトでフェイルセーフの「何も表示しない」標準に設定されます。

埋め込まれたビデオがよく知られている標準(つまり、YouTubeのデフォルトプレーヤー)であれば、問題なく動作します。ただし、自分でホストするビデオプレーヤーの場合、これは機能しません。 Facebookは、他の人のFlashオブジェクトをサイトに埋め込みません。


更新11/18

Facebookは、スマートでありながら、ページ上にどのコンテンツが存在するかを判断するためにかなりの助けが必要です。 <img />タグをすばやくスクレイピングしてページのサムネイルを表示できますが、<object>sまたは<embed>sをスキャンしません。これらはYouTubeビデオからのものである可能性があるためですd(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" />

リンクされているアプリケーションは、Facebookの YouTubeアプリケーション です。また、タイトル、説明、タイプ、URL、画像、site_nameなどの特定の情報も確認できます。これらはすべて、Facebookを友人やネットワークとページを「共有」するときに何をすべきかを把握するのに役立ちます。

AddThisボタンは、ヘッダーにこの情報を追加しません。 YouTubeのようなビデオWebサイトの共有を強化するのではなく、ページを簡単に共有できるように構築されているため、実際にはできません。

したがって、前に言ったように、「ビデオがページにどのように埋め込まれるかによって異なります」。 Facebookは、特定のサイト/アプリケーションから発信された、特定の方法でタグ付けされた特定の形式のビデオのみを処理できます。

YouTubeの埋め込み動画機能を複製するには、次のことを行う必要があります。

  • 独自のFacebookアプリを作成して物事を強化
  • 同じ種類のメタ情報をヘッダーに追加します

必要に応じて(これをお勧めします)、YouTubeが使用する<meta>タグを削るだけの方が簡単です。そのため、動画を追加する場合は、同じYouTubeアプリID、同じ<meta>プロパティを使用し、shouldをお勧めします。

6
EAMann

更新 property属性を持つメタタグだけを抽出するには、次のようにまとめます。

  <?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ビデオ埋め込みプラグインの1つでこれを使用し、テンプレートの先頭にメタ情報を設定するつもりです。

1
TonyK