从FB专辑中拉出随机图像

时间:2013-01-27 14:24:57

标签: javascript jquery facebook slider

我正在尝试修改按照相册ID绘制Facebook照片的jQuery脚本。

它似乎只是拉动了专辑中的第一张图片。

如何将“抓取”过程修改为随机图像而不是顺序?

jQuery的:

$.fn.fbPhotos = function(album, limit) {

    function base_append(obj) {
        $(base).append(obj);
    }

    function getPhoto(obj) {

        var id = obj.id;
        var img = obj.img;
        var link = obj.link;

        var wrap = $('<div></div>').attr({
            'class': 'fb-photo',
            'id': id
        });


        var avatar = new Image();
        avatar.src = img;

        var _avatar = $('<a></a>').attr('href', link).attr('target', '_blank').attr('class', 'avatar').html(avatar);

        $(wrap).append($(_avatar));
        return wrap;

    }

    function init() {
        fetch();
    }

    function fetch() {
        var r;
        var data = {};
        $.ajax({
            url: 'https://graph.facebook.com/' + albumId + '/photos?limit=' + topLimit,
            type: 'GET',
            dataType: 'jsonp',
            data: data,
            success: function(obj) {
                //    console.log(obj);
                if (obj.error) {
/*       var img = new Image();
                         img.src = theme_url + '/images/ico_fail_bird.png';
                         wipe(img); */
                    return false;

其余的jsFiddle

1 个答案:

答案 0 :(得分:1)

您无法使用Graph API执行此操作,但您可以使用FQL photo table执行此操作。在fetch函数中更改此行:

url: 'https://graph.facebook.com/fql?q=SELECT+src+FROM+photo+WHERE+album_object_id="' 
     + albumId + '"+ORDER+BY+rand()+LIMIT+' + topLimit,