2

Facebook の写真、動画、さらにはステータスを埋め込もうとしていますが、Facebook から何も取得できませんでした。

たとえば、この写真の投稿を埋め込もうとしています: https://www.facebook.com/photo.php?fbid=441525965965373&set=a.310879465696691.71407.295546697229968&type=1&theater

まず (oEmbed サービスを試す):

  • Facebook はoEmbedインターフェイスをサポートしていません
  • また、FacebookがWebスクレイピングをブロックしていると思います

そのため、 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"
}

2番目(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 をページに 1 回、理想的には開始タグの直後に含めます(以下を独自のアプリケーション ID に<body>置き換えることを忘れないでください)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>
于 2013-10-16T21:38:53.767 に答える