2014-10-14 3 views
1

У меня есть следующая функция, которая использует API flickr, однако я хочу иметь возможность сортировать заказ изображения по релевантности. Где я могу это указать? Будет ли это в этой функции или функции, которая сначала хранит доступные изображения (запрашивая термин поиска для нескольких апи) в массиве.Как сортировать по релевантности в API Flickr?

function printFlickrImages(){ 
    $("#output").append("<h3>Flickr</h3><p>" 
      +availableImages["flickr"]["numImages"]+" images found from <a href='http://" 
      +availableImages["flickr"]["url_pattern"]+"'>" 
      +availableImages["flickr"]["url_pattern"]+"</a></p>"); 

    for (var i in availableImages["flickr"]["images"]){ 
     var url_comps = availableImages["flickr"]["images"][i].split("/"); 
     var photo_id = url_comps[url_comps.length-2]; 

     $.getJSON(flickr_url+photo_id, function(data) { 
       console.log(data); 
       if(data.stat == "ok" && data.photo.usage.candownload == 1){ 
        var flickr_image_url = "http://farm"+data.photo.farm 
              +".staticflickr.com/"+data.photo.server 
              +"/"+data.photo.id+"_"+data.photo.secret+"_z.jpg"; 
        console.log(flickr_image_url); 
        $("#output").append("<img src='"+flickr_image_url+"'>"); 
       }else{ 
        console.log("Image protected."); 
       } 
     }); 
    } 
}//close printFlickr Images 

ответ

0

Вы можете указать &sort=relevance в качестве параметра начального вызова flickr.photos.search, который не показан фрагмент кода. То есть, где бы он ни находился в коде, который заполняет availableImages, добавьте параметр &sort в вызов API.

0

Если вы используете flickrapi module:

var Flickr = require("flickrapi"), 
    flickrOptions = { 
     api_key: "your key", 
     secret: "your secret", 
     user_id:"your userid" 
     access_token: "your access token", 
     access_token_secret: "your token secret" 
    }; 

Flickr.authenticate(flickrOptions, function(error, flickr) { 
    // we can now use "flickr" as our API object 
    flickr.photos.search({ // this is searching for photos 
     text: "whatever search you want to do", 
     safe_search: 1, 
     content_type: 1, 
     sort: "relevance", // this is where you sort by relevance 
     // you can also sort by date-posted-asc, date-posted-desc, date-taken-asc, date-taken-desc, interestingness-desc, interestingness-asc 
     page: 1, 
     per_page: 10 
    }, function(err, result) { 
     console.log(result.photos.photo) // this displays the ten photos returned by this search 
     console.log(result.photos.photo[0]) // this displays the first of your ten photos 
    }); 
}); 

Примечание, где я использую sort: "relevance". Вы также можете сортировать по дате-постов-по возрастанию, по дате-отправлению-по убыванию, по дате-просмотру, по дате-по-убыванию, по интересам-desc, interesting-asc