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?

È stato utile?

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

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top