是否可以在Facebook上播放YouTube以外的网站上的视频?

时间:2011-10-31 22:46:05

标签: php facebook youtube

我正在开发一个视频共享网站。

如您所知,如果您访问YouTube,请复制链接,将其粘贴到Facebook墙上或留言,然后您就可以在Facebook上播放而无需访问YouTube。据我所知,YouTube是唯一可以做到这一点的网站。例如,如果您从Vimeo复制链接并将其粘贴到Facebook上,它将显示为缩略图,您将无法从Facebook播放。

那么,当用户分享链接时,我是否可以使用API在我的Facebook网站上播放视频,或者此功能仅适用于YouTube?

3 个答案:

答案 0 :(得分:3)

是的,有可能。您需要为您在给定视频上提供的每种视频格式托管一个具有正确的Open Graph Protocol元标记的网页。

然后有人需要在Facebook上分享该网址。 Facebook将抓取您的网站,解析元标记,并提供视频播放器。

提供更多视频格式,确保更好的跨浏览器兼容性。

在此处了解元标记:http://developers.facebook.com/docs/opengraph/

使用Facebook调试工具确保正确格式化元标记:http://developers.facebook.com/tools/debug

答案 1 :(得分:1)

据我所知,这取决于Facebook设计他们的系统,以便当他们看到YouTube网址时,它会巧妙地嵌入视频,这意味着用户不会被重定向。

答案 2 :(得分:1)

  

那么,当用户共享链接时,我是否可以使用API​​在我的网站上播放视频

@Eli,

是的,有一个API可以在Facebook上播放来自网站的视频,它被称为开放图谱协议。请阅读以下所有相关信息:http://ogp.me/可在https://developers.facebook.com/docs/opengraph/

找到其他文档

请在下面找到一些示例代码,以帮助您入门,享受。

<!doctype html>
<!--[if lt IE 7]><html lang="en" class="no-js ie6"><![endif]-->
<!--[if IE 7]><html lang="en" class="no-js ie7"><![endif]-->
<!--[if IE 8]><html lang="en" class="no-js ie8"><![endif]-->
<!--[if IE 9]><html lang="en" class="no-js ie9"><![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--><html lang="en" class="no_js"><!--<![endif]-->
<head>
<meta charset="utf-8">
<title></title>
<meta property="og:title" content="Title goes here">
<meta property="og:type" content="company">
<meta property="og:url" content="http://yourdomainhere.com/">
<meta property="og:image" content="http://yourdomainhere.com/og_image_that_shows_on_facebook.jpg">
<meta property="og:site_name" content="Your Site Name">
<meta property="fb:app_id" content="APP_ID_NUMBER_IF_YOU_HAVE_ONE">
<meta property="fb:admins" content="ADMIN_ID_NUMBER_FOR_FACEBOOK_ANALYTICS">
<meta property="og:description" content="Your description.">
<meta property="og:determiner" content="the" />
<meta property="og:locale" content="en_US" />
<meta property="og:locale:alternate" content="es_ES" />
<meta property="og:video" content="http://example.com/bond/trailer.swf" /><!--VIDEO SRC URL-->
<meta property="og:video:secure_url" content="https://secure.example.com/movie.swf" />
<meta property="og:video:type" content="application/x-shockwave-flash" />
<meta property="og:video:width" content="400" />
<meta property="og:video:height" content="300" />
</head>
<body>
<div id="fb-root"></div>

<script>
/*Facebook Connect JavaScript SDK http://developers.facebook.com/docs/reference/javascript/FB.init/*/
window.fbAsyncInit = function() {
  'use strict';

  FB.init({
    appId                 : 'APP_ID_GOES_HERE', //App ID
    channelURL            : '//yourdomainhere.com/channel.php', //Channel File
    status                : true, //Check login status
    cookie                : true, //Enable cookies to allow the server to access the session
    xfbml                 : true, //Parse XFBML
    oauth                 : true, //Enable OAuth 2.0
    login                 : true,
    authResponse          : true, //Object
    frictionlessRequests  : true
  });

//Additional initialization code here

};

/*Load the Facebook Connect JavaScript SDK Asynchronously */
(function(d){
  'use strict';

  var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
  if (d.getElementById(id)) {
    return;
  }
  js = d.createElement('script'); js.id = id; js.async = true;
  js.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
  ref.parentNode.insertBefore(js, ref);
}(document));
</script>
</body>
</html>