绒狸 API 文档(非官方)
在开发 IdhagnBot 的绒狸插件时,我发现绒狸官方并没有 HTTP API 文档,我只能参照其他插件,如 Furbot-Mirai 或 Nonebot-Plugin-PyFurbot 来编写,因此我决定为绒狸编写第三方 API 文档。
可用 API
api/v2/getFursuitRand
: 获取随机毛图api/v2/getFursuitByName
: 根据名字查找毛图api/v2/getFursuitByID
: 根据 ID 获取指定毛图api/v2/getFursuitFid
: 获取同一个名字的所有 IDapi/v2/DailyFursuit/Rand
: 获取随机一期每日鉴毛api/v2/DailyFursuit/name
: 根据名字获取指定一期每日鉴毛api/v2/DailyFursuit/id
: 根据期数(不是毛毛 ID)获取指定一期每日鉴毛
所有 API 的主机目前均为 https://api.tail.icu
鉴权
如绒狸插件的文档所说,你需要先前往绒狸官方群或填写问卷申请一个 API Token。
然后所有 API 都接受以下三个参数用于鉴权:
参数 | 说明 | 示例 |
---|---|---|
你的 QQ 号,注意不是机器人的。 | 123456789 | |
timestamp | 当前的 UNIX 时间戳。 | 987654321 |
sign | 一个MD5,参见下文。 | 9e000741fe8ea71f4c54b3b41816fb97 |
警告
不要暴露你的 Token!示例中的 QQ 号均已用 123456789
替代,Token 均已用 1234567890ABCDEF
替代,时间戳均已用 987654321
替代。
sign 是 API-时间戳-Token
字符串的 MD5 哈希值,假如你调用的 API 是 api/v2/getFursuitRand
,当前时间戳是 987654321
,Token 是 1234567890ABCDEF
,就是字符串 api/v2/getFursuitRand-987654321-1234567890ABCDEF
的哈希值,即 9e000741fe8ea71f4c54b3b41816fb97
;并且因为所有的 API 都使用 GET 方法,你需要把 sign 放在 URL 中,示例如下:
https://api.tail.icu/api/v2/getFursuitRand?qq=123456789×tamp=987654321&sign=9e000741fe8ea71f4c54b3b41816fb97
getFursuitRand 没有其他参数,因此只需要这三个即可。
结果和错误码
所有 API 的结果均为以下格式:
{
"code": 200, // 响应成功时为 200,参数缺失为 400,鉴权失败为 403,毛毛不存在时为 404
"msg": "操作成功", // 错误信息
"time": 987654321, // 响应时间
"data": {}, // 数据,随 API 而定
"notice": "MicroTail-API|QQ群:893579624" // 公告
}
鉴权失败时为:
{
"code": 403,
"msg": "API用户不存在-未授权", // msg可能不同
"data": [
"Unauthorized"
],
"time": 987654321,
"notice": "MicroTail-API|QQ群:893579624"
}
参数缺失时为:
{
"code": 400,
"msg": "没有传入毛毛的名字name", // msg可能不同
"data": {
"msg": "Fursuit Name Not Provided"
},
"time": 987654321,
"notice": "MicroTail-API|QQ群:893579624"
}