【问题标题】:Is it possible to play videos from a website other than YouTube on Facebook?是否可以在 Facebook 上播放来自 YouTube 以外网站的视频?
【发布时间】:2011-10-31 22:46:04
【问题描述】:

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

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

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

【问题讨论】:

    标签: php facebook youtube


    【解决方案1】:

    是的,这是可能的。您需要托管一个网页,该网页对于您在给定视频中提供的每种视频格式都具有适当的开放图形协议元标记。

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

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

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

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

    【讨论】:

    • 谢谢!!我很奇怪为什么 vimeo、metacafé、dailymotion 和其他人不这样做!
    • @Eli 他们可能想为他们的网站增加流量,如果用户在 Facebook 网站上观看视频,这将不会发生。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      @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>
      

      【讨论】:

        猜你喜欢
        • 2017-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-16
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 2020-04-27
        相关资源
        最近更新 更多