如何获取/嵌入Facebook照片/视频/状态?

时间:2013-09-14 22:27:34

标签: facebook facebook-javascript-sdk web-scraping urlfetch oembed

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

例如,我正在尝试嵌入此Photo Post: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):

尝试使用雅虎的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 console

中尝试

问题是:

有人可以从Facebook获取任何东西吗?

1 个答案:

答案 0 :(得分:3)

最后:),Facebook现在支持enables us to embed "Public Posts"的新功能,所以简短回答&我们需要了解的Embedded Posts只是在这个链接中:

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

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

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

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