1

如何根据文件名显示 Flickr 中的某些图像。我想搜索图像并仅显示适合我的搜索结果的图像。

老实说,这是我第一次使用 Flickr,他们确实需要在其中添加更多示例。

知道从哪里开始吗?

4

1 回答 1

3

这是我放在一起的帮助方法,可让您向 flickr 的 api 发出请求。查看flickr api 文档可能会有所帮助,这样您就可以开始弄清楚如何处理您将要返回的数据。这应该可以在 Chrome 和 Firefox 中使用,我还没有在 IE 或 Safari 中测试过。

/*
 * Make an XmlHttpRequest to api.flickr.com/services/rest/ with query parameters specified
 * in the options hash. Calls cb once the request completes with the results passed in.
 */

var makeFlickrRequest = function(options, cb) {
  var url, xhr, item, first;

  url = "http://api.flickr.com/services/rest/";
  first = true;

  for (item in options) {
    if (options.hasOwnProperty(item)) {
      url += (first ? "?" : "&") + item + "=" + options[item];
      first = false;
    }
  }

  xhr = new XMLHttpRequest();
  xhr.onload = function() { cb(this.response); };
  xhr.open('get', url, true);
  xhr.send();

};

用法:

var options = { 
  "api_key": "<your api key here>",
  "method": "flickr.photos.search", // You can replace this with whatever method,
                                  // flickr.photos.search fits your use case best, though.
  "format": "json",
  "nojsoncallback": "1",
  "text": "<your search text here>"  // This is where you'll put your "file name"
}

makeFlickrRequest(options, function(data) { alert(data) }); // Leaving the actual 
                                                            // implementation up to you! ;)

如果您使用的是jQuery,这里有一个 jQuery 版本:

var makeFlickrRequest = function(options, cb) {
  var url, item, first;

  url = "http://api.flickr.com/services/rest/";
  first = true;
  $.each(options, function(key, value) { 
    url += (first ? "?" : "&") + key + "=" + value;
    first = false; 
  });

  $.get(url, function(data) { cb(data); });

};

此方法与非 jQuery 版本的用法相同。

于 2013-06-12T20:37:06.063 回答