2

我正在尝试嵌入 Facebook 的照片、视频甚至状态,但我无法从 Facebook 获取任何内容,

例如,我正在尝试嵌入此照片帖子:https ://www.facebook.com/photo.php?fbid=441525965965373&set=a.310879465696691.71407.295546697229968&type=1&theater

首先(尝试 oEmbed 服务):

  • Facebook 不支持oEmbed界面
  • 另外,我认为 Facebook 正在阻止网络抓取

因此像Noembed(或Embedly)这样的服务可以很好地嵌入来自 Twitter、Youtube 甚至其他不支持 oEmbed 接口的网站的内容,但它们不会从 Facebook 检索任何内容,例如,尝试使用:

http://noembed.com/embed?url=https%3A%2F%2Fwww.facebook.com%2Fphoto.php%3Ffbid%3D441525965965373%26set%3Da.310879465696691.71407.295546697229968%26type%3D1%26theater

会给:

{
    url: "https://www.facebook.com/photo.php?fbid=441525965965373&set=a.310879465696691.71407.295546697229968&type=1&theater",
    error: "no matching providers found"
}

第二(尝试YQL):

当尝试使用 Yahoo 的 YQL 获取它时,如下所示:

http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20html%20WHERE%20url='https%3A%2F%2Fwww.facebook.com%2Fphoto.php%3Ffbid% 3D441525965965373%26set%3Da.310879465696691.71407.295546697229968%26type%3D1%26theater'%20and%20xpath='//meta|//title|//link'%20and%20compat='html5'&format=json

它不会提供任何东西,您甚至可以在YQL 控制台中尝试

问题是:

到底怎么会有人从 Facebook 获取任何东西?

4

1 回答 1

3

最后 :),Facebook 现在支持一个新功能,使我们能够嵌入“公共帖子”,所以简短的回答和我们需要了解的关于嵌入式帖子的所有信息都在这个链接中:

https://developers.facebook.com/docs/plugins/embedded-posts/

但是要在此处嵌入答案 ;) ,让我们执行以下操作:

1- 在您的页面上包含一次 JavaScript SDK,最好是在开始<body>标记之后(不要忘记将appId下面的替换为您自己的应用程序 ID)

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=334259852684024";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

2- 将插件代码放置在您希望插件出现在页面上的任何位置。

<div class="fb-post" data-href="https://www.facebook.com/FacebookDevelopers/posts/10151471074398553"></div>
于 2013-10-16T21:38:53.767 回答