Работа с объектами facebook Graph API в javascript

#javascript #facebook #facebook-graph-api

#javascript #Facebook #facebook-graph-api

Вопрос:

Я пытаюсь получить доступ к определенным альбомам по их местоположению со страницы Facebook с помощью вызова graph API и в конечном итоге отобразить их на веб-странице.

По сути, я думаю, что мне нужно выполнить цикл по объекту, который Facebook отправляет обратно (в данном случае ответ), и хранить только объекты, которые содержат подстроку «Germany» в описании местоположения, в переменной albums. В настоящее время в консоли ничего не происходит, когда я запускаю метод.

Я как бы застрял на этом этапе, я могу выполнять вызовы API и возвращать их с определенной страницы с помощью других функций, поэтому мое разрешение, похоже, в порядке, я просто неправильно структурирую эту функцию (я думаю, я относительно новичок в JS и Jquery).

 model.getPhoto = (function(data){
    var albums;
    FB.api(
        '/--USER ID GOES HERE--/albums',
        'GET',
        {"fields":"link,location"},
        function(response){
            for (var i=0; i<response.length; i  ){
                if (response.albums.location[i] = "Germany"){
                    albums = response.albums.location[i];
                    i  ;
                }
                console.log(albums);
            }
        }
    );
});
  

Ответ №1:

Вы устанавливаете model.getPhoto в качестве новой функции. Если ваш код завершен, вы никогда не вызываете эту функцию. Я добавил несколько строк, затем вы можете попытаться исправить и увидеть некоторые результаты… Также изменены некоторые строки, созданы альбомы в виде массива и помещены i за if пределы для корректного выполнения цикла for. Последняя строка вызывает вашу функцию.

 model.getPhoto = (function(data){
    FB.api('/--USER ID GOES HERE--/albums',
           'GET',     
           {"fields":"link,location"},
           function(response){
               var albums = new Array();
               for (var i=0; i<response.length; i  ){
                   if (response.albums.location[i] == "Germany"){
                       albums.push(response.albums.location[i]);
                   }
                   i  ;
                   console.log(albums);
               }
          });
     });
model.getPhoto({var1: "value1"});
  

Я предлагаю вам больше играть с javascript и логикой, заглянуть в некоторые библиотеки, такие как сам jQuery, поскольку вы его здесь не используете, просто чистый JS, и получайте удовольствие!

Редактировать

При сравнении вы должны использовать == вместо =

Лучший, Эдер

Комментарии:

1. Спасибо за помощь!