la condivisione di video su Facebook da WordPress
-
16-10-2019 - |
Domanda
Quando un utente tenta di condividere una pagina con un video incorporato su di esso solo il titolo degli spettacoli pagine sul loro status di Facebook e non il lettore video flash. Questo accade pur condividendo con il tasto AddThis o se l'URL è inviato direttamente alla pagina di facebook. Qualsiasi idea di come posso fare facebook pick-up il video flash embedded?
Soluzione
Che in realtà dipende da come il video è incorporato nella pagina. Facebook può gestire solo formati specifici e se vede qualcosa che non si aspetta, il valore predefinito è un fail-safe "spettacolo niente" standard.
Se lo standard video incorporato è ben riconosciuta-(lettore predefinito del cioè YouTube) dovrebbe funzionare bene. Se è il tuo lettore video self-hosted, però, questo non funzionerà. Facebook non incorporare oggetti Flash di altre persone sul loro sito.
Aggiornamento 11/18
Facebook, intelligente come è, ha ancora bisogno di una notevole quantità di aiuto per determinare ciò che vive di contenuti sulla pagina. Si può fare un rapido raschiatura di tag <img />
per darvi miniature di pagina, ma non esegue la scansione per <object>
s o <embed>
s perché questi potrebbero essere qualsiasi cosa, da un video di YouTube (che ci si piace condiviso su Facebook) a un'applicazione Flash invadente ( che Facebook non vuole che sul loro sito).
Per rendere le cose più facili, YouTube utilizza effettivamente una specifica applicazione Facebook per consentire di condividere i video che saranno incorporati automaticamente in Facebook. Oltre a collegare direttamente a questa applicazione, ogni pagina video di YouTube include informazioni aggiuntive meta nella loro intestazione che Facebook usa per racimolare il video e incorporarlo nella pagina. Ecco un esempio dal video si è collegato al precedente:
<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" />
L'applicazione collegata è la YouTube applicazione su Facebook. È anche possibile vedere alcune informazioni specifiche incluso qui: titolo, descrizione, tipo, url, immagine, nome sito. Tutto questo contribuisce a Facebook capire cosa fare quando si "condividere" la pagina ai tuoi amici e di rete.
Il tasto AddThis non aggiunge alcuna di queste informazioni per l'intestazione. Esso non può, in realtà, perché è costruito per consentire la condivisione semplice delle pagine, di non condivisione del potere per i siti web di video come YouTube.
Quindi, come ho detto prima, "dipende da come il video è incorporato nella pagina." Facebook può gestire solo video in formati specifici, contrassegnati in modo specifico, che provengono da siti / applicazioni specifiche.
Per replicare la funzione video incorporato che YouTube ha, avrete bisogno di:
- Crea la tua applicazione Facebook per le cose di potenza
- Aggiungere lo stesso tipo di meta-informazioni per l'intestazione
Se si vuole (e consiglio questo), la via più semplice sarebbe quella di raschiare solo i tag <meta>
usi YouTube. Quindi, se si aggiunge un video, utilizzare la stessa applicazione YouTube Id, le stesse proprietà <meta>
, e dovrebbe essere pronti per partire.
Altri suggerimenti
Aggiorna Per estrarre solo i meta tag con l'attributo di proprietà ho messo insieme il seguente:
<?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);
?>
So che è un po 'hacky ma funziona. Penso che ho intenzione di usare questo con uno dei plugin URL incorporamento e impostare il meta informazioni nella testa del modello.