1

背景として追加できるように、応答画像の URL を取得しようとしています。それは機能しますが、それぞれに同じ画像を追加します。これが私のコードです:

    getUserAlbums : function(){
    FB.api('/me/?fields=id,name,albums', function(response) {
        var albums = response.albums.data;
        var frame = "";
        console.log(albums);
        _.each(albums, function(album) {

            FB.api('/'+album.cover_photo+"/picture?type=album", function(response) {
                var url = response.data;
                _.each(url, function(bg) {
                    console.log(url);
                    $("li.album").css({backgroundImage:"url("+bg.replace("_s.jpg", "_a.jpg")+")"});
                });
            });

            frame += '<li class="album"><img src="images/fb_frame.png"/></li>';

            $('ul#albums').append(frame);

        });

    });
}

アンダースコアを使用していますが、それが「_.each」です。ここでの本当の問題は、写真が追加されると、各アルバムに同じ写真が表示されることです。これは、ループが上書きされていることを意味しますが、理由がわかりません。

4

2 に答える 2

0

I figured it out, I had to change the way I was appending my data:

    FB.api('me/?fields=albums', function(response) {
        var albums = response.albums.data;
        _.each(albums, function(album, i) {
            FB.api('/'+album.cover_photo+"/picture?type=album", function(res) {
                var frame = $('<li class="album"><img src="images/fb_frame.png"/></li>').appendTo('ul#albums');
                frame.css({backgroundImage:'url('+res.data.url.replace('_s.jpg', '_a.jpg')+')'});
            });
        });
    });
于 2013-02-18T17:28:33.040 に答える
0

_s.jpg を a_jpg に置き換える必要はありません。photos オブジェクトの Images フィールドをチェックアウトします。ここから写真を選択できます。

   me/?fields=id,name,albums.fields(photos.fields(images))

"albums": {
    "data": [
      {
        "id": "xxxxxx", 
        "created_time": "2011-04-01T03:17:15+0000", 
        "photos": {
          "data": [
            {
              "images": [
                {
                  "height": 1107, 
                  "width": 2048, 
                  "source": "https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-prn1/s2048x2048/xxxx_n.jpg"
                }, 
                {
                  "height": 330, 
                  "width": 610, 
                  "source": "https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-prn1/XXXX_n.jpg"
                }, 
                {
                  "height": 330, 
                  "width": 610, 
                  "source": "https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-prn1/xxxxx_n.jpg"
                }, 
                {
                  "height": 324, 
                  "width": 600, 
                  "source": "https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-prn1/s600x600/xxxxxxxxx_n.jpg"
                }, 
                {
                  "height": 259, 
                  "width": 480, 
                  "source": "https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-prn1/s480x480/xxxxxxxx_n.jpg"
                }, 
                {
                  "height": 173, 
                  "width": 320, 
                  "source": "https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-prn1/s320x320/xxxxxxx_n.jpg"
                }, 
                {
                  "height": 97, 
                  "width": 180, 
                  "source": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-prn1/xxxxxx_a.jpg"
                }, 
                {
                  "height": 70, 
                  "width": 130, 
                  "source": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-prn1/xxxxxxxx_s.jpg"
                }, 
                {
                  "height": 70, 
                  "width": 130, 
                  "source": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-prn1/s75x225/xxxxxx_s.jpg"
                }
              ], 
              "id": "4274066575883", 
              "created_time": "2013-02-09T10:43:54+0000"
            }, 
于 2013-02-22T17:47:17.250 に答える