2

我正在尝试获取一个 facebook 画廊(https://www.facebook.com/media/set/?set=a.188384271935.125248.188249156935&type=3)特别是在网站上显示。

我尝试过的所有 JSON 示例似乎都与 facebook 的当前 API 过时了。

https://graphs.facebook.com/10151038651796936?fields=images提取我需要的 JSON 数据。但是当我将它插入到我找到的示例中,甚至是来自 Facebook API 的示例中时,它不会加载。(使用本地托管的 Jquery 1.9)

这是我尝试使用的代码,但我认为根据 facebooks 当前的 API 它已经过时了。

        <script type="text/javascript">
          (function (gallery_id) {
            var title = $('h2'),
                viewer = $('#viewer'),
                thumbs = $('#thumbs');

            // album info
            $.getJSON('//graph.facebook.com/' + gallery_id + '?callback=?', function(json, status, xhr) {
              title.html('<a href="' + json.link + '">' + json.name + '</a> from ' + json.from.name);
            });

            // images
            $.getJSON('//graph.facebook.com/' + gallery_id + '/photos?callback=?', function(json, status, xhr) {
              var imgs = json.data;

              viewer.attr('src', imgs[0].images[0].source)

              for (var i = 0, l = imgs.length - 1; i < l; i++) {
                $('<img src="' + imgs[i].images[3].source + '" data-fullsize="' + imgs[i].images[0].source + '">').appendTo(thumbs);
              }

              $('img', thumbs).bind('click', function(e) {
                e.preventDefault();
                viewer.attr('src', $(this).attr('data-fullsize'));
              });
            });
          })('188384271935'); //  put the gallery ID here

我希望代码能够选择显示的图片数量(最近的),并且可以轻松更改画廊 ID。

我对 JSON 很不熟悉,如果你能展示一个工作代码片段的例子,我会非常感激它。

4

1 回答 1

0

你的代码对我来说很好。您应该仔细检查您的 jQuery 库是否确实在加载,并且您的页面上是否有具有IDviewerthumbsID 的元素。 viewer应该是一个img标签,并且thumbs应该是某种块级元素,比如div.

由于您不习惯jQuery(document).ready调用它,(至少不是从提供的代码中),您还应该确保在viewerand的标记之后包含此脚本标记thumbs

顺便说一句,如果您使用imgs[i].images[6].source缩略图,它们会小一点。

于 2013-04-25T18:30:58.883 回答