文章目录
  1. 1. 获取token
    1. 1.1. 注册imgur
    2. 1.2. 生成token
  2. 2. 获取相册内容

疫情期间,各种特殊的情形催生出来一些特殊的互联网项目。比如我给孩子幼儿园班上就做了一个签到的小程序,方便同班家长报告孩子情况,也方便老师一键催签和快速统计。

当然我也一直在思考这个小程序能不能再多为班上提供点什么便利的服务?比如上线几天后,就增加了基于语雀接口的资讯模块。

要说一开始想到的是资讯,不如一开始想到的其实是图片和视频分享。但是说起来容易,做起来肉疼。图片和视频托管都是白花花的银子。从一开始我就没有想过要靠这个挣一分钱(当然也没想过要往里投入什么钱)。所以其实寻觅这个功能的实现方式,花费了相当长的时间。

第一时间想到的自然是各个对象存储,因为大部分都有免费额度,但是因为自己是基于无服务端开发,不想再去敲服务端代码了,哪怕只有简单几行。第二考虑的是国内非常有名的免费图床:sm.ms,但是恰逢去年改版,目前已经不允许客户端直接访问,必须服务端验证身份,所以也只有放弃。当然也有想过已经用上的语雀服务,但是语雀虽然提供了资源知识库,却并不提供相关接口,也就此放弃。

最后很幸运的碰到的imgur,一个令人难以置信的高质量图床,提供免费的空间和各种功能,以及丰富的api。当然有一点很关键:该服务在墙外。

首先记录一下如何使用api,方法基本来自于这篇博客:https://letswrite.tw/imgur-api-upload-load/

获取token

其实如果只是get方法,而且要获取的内容都是public的,那这步完全可以简化。因为用CLIENT_ID就可以通过验证了。

但是如果是私有或者说要上传,那对不起,这步是最麻烦的。

先列举一下需要的链接:

Imgur api 说明文档:https://apidocs.imgur.com/

Imgur app 注册:https://api.imgur.com/oauth2/addclient

Postman 下载:https://www.getpostman.com/

注册imgur

Authorization type 选择第二个不需要回调 URL。输入email后点击submit,就可以看到 App 的 ID、secret。记下scret,这个只出现一次,服务端不保留,之后只能重新生成。

了解注册过程的朋友们先不要开喷,因为这就是我的操作步骤。接下来,把之前没有填写的回调URL给补上……在Redirect那里,填写https://www.getpostman.com/oauth2/callback

然后点击update。

生成token

打开Postman,新建请求页,授权type选择OAuth2.0,然后点击Get New Access Token。

在弹出框中填写以下信息:

Callback URL:https://www.getpostman.com/oauth2/callback

Auth URL:https://api.imgur.com/oauth2/authorize

Access Token URL:https://api.imgur.com/oauth2/token

Client ID、Client Secret:这个应该记录下来了,直接填入就是

点击 Request Token,就弹出 Imgur 的登录框。注意,要命的地方来了。

如果你是邮箱注册,那么恭喜你,直接就可以登录,然后获取到token,就像下图一样。

如果你是第三方授权的,那么也恭喜你,回到你的浏览器网页,退出登录,选择忘记密码,重新设置密码以后,才可以在刚才的登录框里登录。

记得记下Access Token,否则还得再做一遍刚才的事情。

获取相册内容

因为我目前不使用上传接口,都是直接使用imgur的后台上传,所以直接进入下一阶段,获取内容:

1
2
3
4
5
6
7
8
9
10
11
12
const id = 'YOUR-CLIENT-ID'; 
const token = 'YOUR-TOKEN';
const album = 'YOUR-ALBUM-ID';

$.ajax({
url: "https://api.imgur.com/3/album/" + album + "/images",
"headers": {
"Authorization": 'Bearer ' + token
}
}).done(function(res) {
console.log(res.data);
});

真是非常感恩有这样优秀的服务,也感谢语雀,使得无服务端的小程序得以实现。

PS:关于怎么能正常的在国内使用这个服务,可以留言跟我交流。为了所有希望正常使用该服务的朋友还可以享受一段时间,就不在这里po出来了。也恳请所有正在使用imgur的朋友积点德,把这么好的服务用到正道上。

♦ 本文固定连接:http://gsgundam.com/2020-03-09-imgur-api-usage/

♦ 转载请注明:GSGundam 2020年03月09日发布于 GSGUNDAM砍柴工