Affichage d'un lien vidéo intégré à L'aide de L'API Facebook Graph
Facebook facebook reconnaît automatiquement le lien comme une vidéo et permet au message d'état résultant de lire la vidéo en ligne.
Lorsque vous attachez manuellement un lien vidéo (à partir de YouTube, Vimeo, etc.) à un poste à l'aide de L'interface Web de Facebook, Facebook reconnaît automatiquement le lien comme une vidéo et permet au message d'état La vidéo est affichée en tant que lecteur intégré dans le mur ou le fil D'actualité.
Voici un exemple de ce à quoi ressemble une vidéo intégrée après la publication manuelle.
Lors de la publication d'un lien à L'aide de L'API Graph, la imbriqué.
curl -F 'access_token=...'
-F 'message=Link to YouTube'
-F 'link=http://www.youtube.com/watch?v=3aICB2mUu2k'
https://graph.facebook.com/me/feed
Je soupçonne que la réponse est liée à l'argument source
, mais je ne suis pas sûr de ce que l'URL devrait être là. Spécifier la même URL conduit juste à un post sans image miniature que ce soit.
Source : URL vers un film Flash ou un fichier vidéo pour être incorporé dans le post. read_stream.
Comment le même comportement intégré peut-il être accompli en utilisant l'API Graph seule?
7 réponses
Il semble que vous devez extraire les URL du swf réel dans la page et l'image miniature vous-même. Par exemple, cela semble fonctionner:
curl -F 'access_token=...' \
-F 'message=Link to YouTube' \
-F 'link=http://www.youtube.com/watch?v=3aICB2mUu2k' \
-F 'source=http://www.youtube.com/v/3aICB2mUu2k' \
-F 'picture=http://img.youtube.com/vi/3aICB2mUu2k/0.jpg' \
https://graph.facebook.com/me/feed
Il semble que vous pouvez générer une source et une image valides à partir de l'URL de la page. L'URL ressemble à http://www.youtube.com/watch?v=<code>
; Prenez le code (3aicb2muu2k ici) et insérez-le dans les URLs http://www.youtube.com/e/<code>
pour la source et et http://img.youtube.com/vi/<code>/0.jpg
pour l'image.
Voici comment poster une vidéo manuellement pour YOUTUBE et VIMEO (difficile à trouver en ligne). Plus précisément, si vous voulez avoir la valeur du lien pointant vers le site web/blog d'un utilisateur d'où il provient.
//search for youtube.com and vimeo.com in the 'link' value
if (preg_match("/youtube.com/", $model->link) || preg_match("/youtu.be/", $model->link)){
if (preg_match('%(?:youtube\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $model->link, $match))
{
$video_code = $match[1];
}
$source = 'http://www.youtube.com/e/'.$video_code;
$picture = 'http://img.youtube.com/vi/'.$video_code.'/0.jpg';
}
else if (preg_match("/vimeo.com/", $model->link))
{
if (preg_match('/vimeo\.com\/(clip\:)?(\d+).*$/', $model->link, $match))
{
$video_code = $match[2];
}
/* Get Vimeo thumbnail */
$hash = unserialize(file_get_contents("http://vimeo.com/api/v2/video/$video_code.php"));
$picture = $hash[0]['thumbnail_medium'];
$source = 'https://secure.vimeo.com/moogaloop.swf?clip_id='.$video_code.'&autoplay=1';
}
$args = array(
'message' => //user's comment
'name' => //Title of post
'link' => 'http://...'//link to video on user's website
'source' => $source,
'picture' => $picture,
);
if ($this->_facebook->api("/".$this->facebookUserID."/feed", "post", $args)){
//posted to facebook
}
Le partage en tant que lien avec / links au lieu de / feed semble mieux fonctionner. Les vidéos YouTube, vimeo et Facebook sont intégrées comme si elles étaient affichées manuellement.
curl -F 'access_token=...' \
-F 'message=Link to YouTube' \
-F 'link=http://www.youtube.com/watch?v=3aICB2mUu2k' \
https://graph.facebook.com/me/links
Ne pas utiliser /feed, utiliser / links (https://graph.facebook.com/me/links/) et simplement poster" message "et" lien " paramètres en utilisant le YouTube / montre?v = format D'URL ZL7nV7WwJKg. facebook facebook / feed n'a jamais fonctionné pour moi, il vient de poster un graphique statique et un lien, mais je voulais qu'il joue réellement intégré sur Facebook comme il le fait lorsque vous partagez la vidéo de YouTube à Facebook. Fonctionne comme un charme.
Cela ne fonctionnera pas pour l'affichage dans les groupes sur / feeds ou / links. Voir ici. Veuillez upvote la question pour être fixé bientôt.
/ links est un doublon des flux / qui affiche uniquement les messages de type lien postés par l'utilisateur eux-mêmes.
Essayez plutôt de poster le lien En tant qu'attribut de message, cela fonctionne pour moi de cette façon.
message = your message + link
Partage en utilisant L'API any .fichier swf ou vidéo ne montrera pas une vignette sur facebook à moins que son youtube . Et c'est par conception selon facebook. Vérifiez ce lien