区分Imgur画廊中的专辑和图像

时间:2014-06-04 08:43:23

标签: javascript node.js api imgur

首先,道歉,因为这是一个相当狭窄的主题,所以我理解它是否被删除。 Imgur链接有多种格式,如下所示:

http://i.imgur.com/kMoI9Vn.jpg
http://i.imgur.com/f7VXJQF
http://imgur.com/S1dZBPm
http://imgur.com/a/liD3a
http://imgur.com/gallery/HFoOCeg

在Imgur API文档中,有两个相关的端点。一个用于albums,另一个用于images。通常情况下,图像和相册之间没有区别,因为相册网址的前缀为/a/

但是,以下是有效的图库网址:

http://imgur.com/gallery/HFoOCeg
http://imgur.com/gallery/clWTb

第一个是图像,第二个是专辑。 gallery类别有两个相关的终点,imagealbum。尝试使用向图像端点提交专辑请求(反之亦然)会导致404错误。

如果只提供ID(例如:HFoOCeg)以确定它是专辑还是图片而没有发送多个请求,有没有办法?

1 个答案:

答案 0 :(得分:2)

如果您使用的是ajax,您可能会觉得这很有帮助。它从https://api.imgur.com/3/gallery/ {hash}中挑选数据并在成功函数中添加条件以区分相册和单个图像。到目前为止似乎有效。顺便提一下,在上面的评论中,我发现专辑和图像ID分别不是5和7个字符长。

以任意方式从http://imgur.com/gallery/vTTHZ等网址抓取哈希值。

然后:

var thehash = 'vTTHZ';
$.ajax({
      type: "GET",
      url: "https://api.imgur.com/3/gallery/" + thehash,
      dataType: "json",
      headers:{
      'Authorization':'Client-ID xxxxxxxxxxxxxx'
      },
      success: function(data) {
       if(data.data.is_album === true) {
        var dlength = data.data.images.length;
        for(i=0; i < dlength; i++) {
         $('#mydiv').append('<li>' + data.data.images[i].link + '</li>');
         } 
       } else 
       {
        $('#mydiv').html('<li>' + data.data.link + '</li>');
       }      
        console.log(data);            
      }
    });