区分 Imgur 画廊中的相册和图像

Ben*_*wis 5 javascript api node.js 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
Run Code Online (Sandbox Code Playgroud)

在 Imgur API 文档中,有两个相关的端点。一个用于相册,另一个用于图像。通常,区分图像和相册没有问题,因为相册 URL 前缀为/a/

但是,以下都是有效的画廊 URL:

http://imgur.com/gallery/HFoOCeg
http://imgur.com/gallery/clWTb
Run Code Online (Sandbox Code Playgroud)

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

仅提供 ID(例如:)时,有什么方法HFoOCeg可以确定它是相册还是图像而不发送多个请求吗?

小智 2

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

无论您喜欢什么方式,都可以从https://i.stack.imgur.com/yAznF.jpg之类的 url 中获取哈希值。

然后:

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);            
      }
    });
Run Code Online (Sandbox Code Playgroud)