【发布时间】:2014-02-05 01:14:13
【问题描述】:
我刚刚下载了Bootstrap Image Gallery,但很难从 Flickr 加载我的图像。在 demo.js 文件中,有一个用于从 Flickr 加载图像的 AJAX 调用。
说实话,我对 JS 或 AJAX 调用并不熟悉,但在查看代码时,它似乎就像替换 API 密钥一样简单。 (基本 URL 公式是从 Flickr 已经根据它们在服务器中存储数据的位置定义的照片规范中提取的。)
但它对我不起作用。两个问题:
- 当我将 API_key 替换为我的时,原始演示图像仍在加载中!但是为了确保 API_key 实际被使用,如果我用任何内容或随机密钥替换它,图像不会加载。
- 当我用
flickr.photosets.getPhotos替换方法时(并在API 密钥后添加必要的photoset_id),没有图像出现。事实上,尽管我已经尝试了多种方法来调用每个Flickr API docs 的照片,但只有原始的flickr.interestingness.getList有效
对此有什么想法吗?我要做的就是使用我的 API_Key 调用我的照片,然后使用 flickr.photosets.getPhotos 方法(返回一组特定照片)。
相关代码如下
// Load demo images from flickr:
$.ajax({
url: (window.location.protocol === 'https:' ?
'https://secure' : 'http://api') +
'.flickr.com/services/rest/',
data: {
format: 'json',
method: 'flickr.interestingness.getList',
api_key: '7617adae70159d09ba78cfec73c13be3'
},
dataType: 'jsonp',
jsonp: 'jsoncallback'
}).done(function (result) {
var linksContainer = $('#links'),
baseUrl;
// Add the demo images as links with thumbnails to the page:
$.each(result.photos.photo, function (index, photo) {
baseUrl = 'http://farm' + photo.farm + '.static.flickr.com/' +
photo.server + '/' + photo.id + '_' + photo.secret;
$('<a/>')
.append($('<img>').prop('src', baseUrl + '_s.jpg'))
.prop('href', baseUrl + '_b.jpg')
.prop('title', photo.title)
.attr('data-gallery', '')
.appendTo(linksContainer);
});
});
【问题讨论】:
-
将
console.log(result)放在done函数的开头,并检查输出到浏览器控制台的内容。当出现问题时,这些 API 方法会返回错误,您可以通过简短查看 API 文档(我假设您没有打扰?)来发现。请开始阅读文档,而不是仅仅通过反复试验(甚至不检查可能的错误)。 -
@CBroe 是的,我确实阅读了所有文档,但如前所述,我对 Ajax 或 JS 不熟悉,除非我对它大加掩饰,否则文档没有提到 Ajax Flickr 调用一点也不。同样,我并不是说页面没有加载,只是没有加载正确的图像,调用工作正常并且没有抛出错误。在我尝试输入 console.log(result) 之后确实是这种情况。你还有什么我可以尝试的想法吗?
-
形成文档,在我看来,
flickr.interestingness.getList不应该提供特定于查看用户/应用程序的照片,而是 Flickr 通常认为的“有趣的照片”——这将当然意味着你得到相同的组照片。flickr.photosets.getPhotos的控制台输出显示什么? -
输出看起来是一样的,这段代码所在的 demo.js 文件没有抛出任何错误
标签: twitter-bootstrap blueimp flickr