it-swarm.com.de

teilen von Videos auf Facebook von WordPress

Wenn ein Benutzer versucht, eine Seite mit einem eingebetteten Video freizugeben, wird nur der Seitentitel in seinem Facebook-Status und nicht der Flash-Videoplayer angezeigt. Dies geschieht beim Teilen mit dem Addthis-Button oder wenn die URL direkt auf der Facebook-Seite gepostet wird. Hast du eine Idee, wie ich Facebook dazu bringen kann, das eingebettete Flash-Video aufzunehmen?

2
TonyK

Das hängt wirklich davon ab, wie das Video in die Seite eingebettet ist. Facebook kann nur mit bestimmten Formaten umgehen und wenn es etwas sieht, das es nicht erwartet, wird standardmäßig ein ausfallsicherer "show nothing" -Standard verwendet.

Wenn das eingebettete Video ein bekannter Standard ist (d. H. Der Standardplayer von YouTube), sollte es einwandfrei funktionieren. Wenn es sich jedoch um Ihren eigenen selbst gehosteten Videoplayer handelt, funktioniert dies nicht. Facebook bettet die Flash-Objekte anderer Leute nicht in ihre Website ein.


Update 18.11

Facebook, so schlau es auch ist, benötigt immer noch eine beträchtliche Menge an Hilfe, um festzustellen, welcher Inhalt auf der Seite vorhanden ist. <img />-Tags können schnell gescrappt werden, um Miniaturansichten von Seiten zu erhalten. Es wird jedoch nicht nach <object>s oder <embed>s gesucht, da dies alles sein kann, von einem YouTube-Video (das Sie auf Facebook teilen möchten) bis zu einer aufdringlichen Flash-Anwendung ( dass Facebook nicht auf ihrer Website wollen).

Zur Vereinfachung verwendet YouTube eine spezielle Facebook-Anwendung, mit der Sie Videos freigeben können, die automatisch in Facebook eingebettet werden. Neben dem direkten Link zu dieser Anwendung enthält jede YouTube-Videoseite zusätzliche Metainformationen in ihrem Header, die Facebook verwendet, um das Video zu scrappen und in die Seite einzubetten. Hier ist ein Beispiel aus dem Video, das Sie zuvor verlinkt haben:

<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" />

Die verknüpfte Anwendung ist die YouTube-Anwendung auf Facebook. Hier finden Sie auch einige spezifische Informationen: Titel, Beschreibung, Typ, URL, Bild, Site-Name. All dies hilft Facebook dabei, herauszufinden, was zu tun ist, wenn Sie die Seite für Ihre Freunde und Ihr Netzwerk "freigeben".

Die Schaltfläche AddThis fügt keine dieser Informationen zu Ihrer Kopfzeile hinzu. Dies ist in Wirklichkeit nicht möglich, da es die einfache Freigabe von Seiten ermöglicht und nicht die Freigabe für Video-Websites wie YouTube.

Wie ich bereits sagte, "hängt es davon ab, wie das Video in die Seite eingebettet ist". Facebook kann nur Videos in bestimmten Formaten verarbeiten, die auf bestimmte Weise mit Tags versehen sind und von bestimmten Websites/Anwendungen stammen.

Um die eingebettete Videofunktion von YouTube zu replizieren, musst du:

  • Erstellen Sie Ihre eigene Facebook-App, um die Dinge anzutreiben
  • Fügen Sie Ihrem Header die gleichen Metainformationen hinzu

Wenn Sie möchten (und ich würde dies empfehlen), ist es am einfachsten, die von YouTube verwendeten <meta>-Tags zu entfernen. Wenn Sie also ein Video hinzufügen, verwenden Sie dieselbe YouTube-App-ID, dieselben <meta>-Eigenschaften und Sie sollten können loslegen.

6
EAMann

Update Um nur die Meta-Tags mit dem Eigenschaftsattribut zu extrahieren, habe ich Folgendes zusammengestellt:

  <?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); 

?>

Ich weiß, es ist ein bisschen verrückt, aber es funktioniert. Ich denke, ich werde dies mit einem der Plugins zum Einbetten von URL-Videos verwenden und die Metainformationen im Kopf der Vorlage festlegen.

1
TonyK