共计字数:844 预计阅读用时:3 分钟

Libra 红名单 WebAPI v2 文档

众所周知,因为一些内部开发人员对于使用 Python 有争议,最后协商选择使用 NodeJS 重新编写,同时和维护团队与阿尔法营的守护者老师深度讨论之后重新制定了第二个 WebAPI 版本。

该文档的内容以通过审核,现已可用。

注:旧版本的 API 仍然会保留,但是不建议继续使用,请尽快将请求链接转移至 v2!
旧版 v1 API 链接

API 文档

所有链接均使用 https://www.scpo.top:1120/v2 为链接,调用方法为 POST。表单数据均为 JSON,FormData 或 URIEncodedForm。

所有表单以 method 确定调用功能类型和返回值,总共有以下值可以选择:

  • isInList 获取一个用户是否在红名单内
  • getList 获取以 JSON 数组为格式的在红名单内的所有用户名单
  • getImportableList 获取以 Scratch 链表文本为格式的在红名单内的所有用户名单

以下为对应功能的参数集:

isInList

参数名称 默认值 可选值 说明
platform kada,acamp 社区平台,如不填则为所有平台
format username username,id 输入的名称类型,是用户名还是用户ID编号
value 需要检测的用户名或用户ID

返回值:

参数名称 类型 说明
message string 返回 success 即成功,否则返回错误原因
status boolean 返回用户状态,如果为 true 则在红名单内,false 反之亦然
reason string/null 如果 status 为 true 时这里是被登记入红名单的原因,否则为 null

getList

参数名称 默认值 可选值 说明
platform kada,acamp 社区平台,如不填则为所有平台

返回值:

参数名称 类型 说明
message string 返回 success 即成功,否则返回错误原因
list 见下表 在红名单内的所有用户名单

数组成员类型结构:

成员名称 类型 说明
name string 用户的名称
reason string 用户被登记入红名单的原因

getImportableList

参数名称 默认值 可选值 说明
platform kada,acamp 社区平台,如不填则为所有平台
type username username,id,reason 返回用户名称还是用户ID

返回值:一个以 Scratch 链表文本为格式的在红名单内的所有用户名单,可以直接导入到 Scratch 的链表变量中。

使用范例

isInList

客户端:

1
2
3
4
5
6
7
8
9
10
POST /v2 HTTP/1.1
HOST: redlist.zerlight.top:1100
Content-Type: application/json

{
"method": "isInList",
"format": "username",
"platform": "acamp",
"value": "Zerdot"
}

服务端:

1
2
3
4
5
6
7
8
HTTP/1.1 200 OK
Content-Type: application/json

{
"message": "success",
"status": true,
"reason": "此为示例用户,当你看到这个永久名单,说明你的请求有问题或者你本来就是要测试才调用这个的,请更正你的请求数据后重试"
}

getList

客户端:

1
2
3
4
5
6
7
8
POST /v2 HTTP/1.1
HOST: redlist.zerlight.top:1100
Content-Type: application/json

{
"method": "getList",
"platform": "acamp"
}

服务端(因列表数据太多所以只列举一个):

1
2
3
4
5
6
7
8
9
10
HTTP/1.1 200 OK
Content-Type: application/json

{
"message": "success",
"list": [{
"name": "Zerdot",
"reason": "此为示例用户,当你看到这个永久名单,说明你的请求有问题或者你本来就是要测试才调用这个的,请更正你的请求数据后重试"
}]
}

getImportableList

客户端:

1
2
3
4
5
6
7
8
9
POST /v2 HTTP/1.1
HOST: redlist.zerlight.top:1100
Content-Type: application/json

{
"method": "getImportableList",
"platform": "acamp",
"type": "username"
}

服务端:

1
2
3
4
5
6
7
HTTP/1.1 200 OK
Content-Type: text/plain

Umberto Unity
Carla Caring
Katie Kindness
Fred Friendship