转换此Facebook JSON回调以获取目录中的图像

时间:2013-05-05 20:09:41

标签: jquery json facebook

Facebook现在需要访问令牌来访问公共照片。我无法构建一个应用程序来解决这个问题,但我在网站上有50多个画廊已经破碎,我正试图找到最难以解决的解决方案。

假设我在我自己的服务器上的目录中拥有给定相册的所有图像,我可以修改此代码以获取我的图像并将每个图像放入列表标记中吗?基本上从我的服务器而不是Facebook获取给定目录中的图像并构建列表。

$.getJSON('//graph.facebook.com/ALBUM_ID/photos?callback=?', function (json) {
    $.each(json.data, function () {
        $('<li></li>')
            .append('<span class="thumb" style="background: url(' + this.images[1].source + ') center no-repeat; background-size: 140%;"><a href=' + this.images[0].source + ' rel="gallery"></a></span>')
            .appendTo('#album-gallery');
    });
});

1 个答案:

答案 0 :(得分:0)

your comments开始,您可以通过编程方式将图片01.jpg添加到20.jpg,只需使用循环播放;

for (var i=1;i<=20;i++) {
    var url = '/pathToYourFolder/image_' + (i < 10 ? '0' : '') + i + '.jpg';

    $('<li></li>')
        .append('<span class="thumb" style="background: url(' + url + ') center no-repeat; background-size: 140%;"><a href=' + url + ' rel="gallery"></a></span>')
        .appendTo('#album-gallery');
}

请注意,我们已经使用我们自己的url构造将之前添加的URL替换为图像。您需要使用您现在存储图像的文件夹名称更改/pathToYourFolder/

如果您决定要图像1-30或5-10,则只需更改for循环的范围。


解决您的comments on this answer;

  1. 您可以通过将脚本包装在$(document).ready()块中来避免在页面底部插入脚本。

  2. 如果您有多个文件名,可以将它们存储在一个数组中,并像这样迭代它们;

    var names = ['anything.jpg', 'foo.jpg', 'bar.jpg', 'baz.jpg'];
    
    for (var i=0;i<names.length;i++) {
        var url = '/pathToYourFolder/' + names[i];
    
        $('<li></li>')
            .append('<span class="thumb" style="background: url(' + url + ') center no-repeat; background-size: 140%;"><a href=' + url + ' rel="gallery"></a></span>')
            .appendTo('#album-gallery');
    }
    
  3. 结合$(document).ready(),这会给你;

    $(document).ready(function () {
        var names = ['anything.jpg', 'foo.jpg', 'bar.jpg', 'baz.jpg'];
    
        for (var i=0;i<names.length;i++) {
            var url = '/pathToYourFolder/' + names[i];
    
            $('<li></li>')
                .append('<span class="thumb" style="background: url(' + url + ') center no-repeat; background-size: 140%;"><a href=' + url + ' rel="gallery"></a></span>')
                .appendTo('#album-gallery');
        }
    });