用facebook照片创建相册(灯箱等)

时间:2012-10-29 21:29:06

标签: javascript facebook wordpress integration

我正在尝试在Lightbox(或类似的画廊类型)中展示照片库,但我的客户希望照片来自Facebook相册,以避免上传照片两次。

我在wordpress中工作,但我环顾了一些可用的插件,看起来并不是很有希望。

我最好的攻击计划是什么?我还没有真正开始深入了解facebook api,但如果这是你们所建议的,那么我会继续这样做。我对javascript和php非常熟悉。我不想再去那个兔子洞,直到我确定它会起作用。

我只是想找人分享一些见解,因为我真的不知道从哪里开始。

编辑:

这就是我被困的地方......

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Facebook Photo Gallery</title>
    <script type='text/javascript' src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script type="text/javascript">

$.getJSON('http://graph.facebook.com/356611067762340/photos').then(function(response) {
        // 0-8, 0 returns the largest available images, 8 the smallest
        var imageIndex = 5;

        var images = _(response.data)
            .chain()
            .pluck('images')
            .pluck(imageIndex)
            .value();

        console.log(images);

        _(images).each(function(image) {
            $('#image-container').append(
                $('<img>').attr('src', image.source)
            );
        });

        });
    </script>


    </head>

    <body>
    <div id="image-container"></div>​

    </body>
    </html>

这对我来说似乎完全有效,为什么它不起作用??

1 个答案:

答案 0 :(得分:2)

如果专辑是公开的并且由Facebook页面(不是个人资料)拥有,那么这应该很容易。我是在婚礼网站上做到的。

以下是我使用的相册:https://www.facebook.com/media/set/?set=a.428653951748.228645.6815841748&type=3

这是我需要的Facebook API端点:http://graph.facebook.com/428653951748/photos

您只需要能够从Facebook相册的URL中提取的相册ID,然后发出对graph.facebook.com/[id]/photos的请求。您可以获得不同大小的图像的一系列图像和URL。

示例,使用jQuery和Underscore.js(也在http://jsfiddle.net/ey2Pd/2/):

$.getJSON('http://graph.facebook.com/10150198713667381/photos').then(function(response) {

    // 0-8, 0 returns the largest available images, 8 the smallest
    var imageIndex = 4;

    var images = _(response.data).chain()
        .pluck('images')
        .pluck(imageIndex)
    .value();

    _(images).each(function(image) {
        $('#image-container').append(
            $('<img>').attr('src', image.source)
        );
    });

});​