bilibili-API-collect/docs/newbie_exam/action.md
2023-02-23 11:48:58 +08:00

16 KiB
Raw Blame History

操作

提交答题

提交基础题

https://api.bilibili.com/x/answer/v4/base/check

请求方式POST

认证方式APP或CookieSESSDATA

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
question_id num 题目id 必要 拉取基础题api获得
ans_hash str 选项hash 必要 拉取基础题api获得
csrf str CSRF Token位于cookie Cookie方式必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-101账号未登录
-400请求错误
41014答题过快或错误太多
41012用户答题提交题目id不合法
41020用户基础题已通过
41023用户答题记录不存在
message str 错误信息 默认为0
ttl num 1
data obj 信息本体

data对象:

字段 类型 内容 备注
passed bool 选项是否正确 true选项正确
false选项错误

示例:

提交题目id为104的题选项hash为cb4c8cc9424fc771f7c1598e74de498f

curl 'https://api.bilibili.com/x/answer/v4/base/check' \
--data-urlencode 'question_id=104' \
--data-urlencode 'ans_hash=cb4c8cc9424fc771f7c1598e74de498f' \
--data-urlencode 'csrf=xxxx' \
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "passed": true
    }
}

提交附加题

https://api.bilibili.com/x/answer/v4/base/check

请求方式POST

认证方式APP或CookieSESSDATA

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
question_id num 题目id 必要 拉取基础题api获得
ans_hash str 选项hash 必要 拉取基础题api获得
csrf str CSRF Token位于cookie Cookie方式必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-101账号未登录
-400请求错误
41014答题过快或错误太多
41012用户答题提交题目id不合法
41023用户答题记录不存在
message str 错误信息 默认为0
ttl num 1
data obj 信息本体

data对象:

字段 类型 内容 备注
passed bool 选项是否正确 true选项正确
false选项错误

示例:

提交题目id为104的题选项hash为cb4c8cc9424fc771f7c1598e74de498f

curl 'https://api.bilibili.com/x/answer/v4/base/check' \
--data-urlencode 'question_id=104' \
--data-urlencode 'ans_hash=cb4c8cc9424fc771f7c1598e74de498f' \
--data-urlencode 'csrf=xxxx' \
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "passed": true
    }
}

提交自选题

https://api.bilibili.com/x/answer/v4/pro/check

请求方式POST

认证方式APP或CookieSESSDATA

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
question_id num 题目id 必要 拉取基础题api获得
ans_hash str 选项hash 必要 拉取基础题api获得
csrf str CSRF Token位于cookie Cookie方式必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-101账号未登录
-400请求错误
41014答题过快或错误太多
41012用户答题提交题目id不合法
41023用户答题记录不存在
41026获取用户DB题目信息异常
message str 错误信息 默认为0
ttl num 1
data obj 信息本体

data对象:

字段 类型 内容 备注
passed bool true 恒为true

示例:

提交题目id为2935的题选项hash为ffd55cbe0624f466bee2ea3eb576a4d0

curl -G 'https://api.bilibili.com/x/answer/v4/pro/check' \
--data-urlencode 'question_id=2935' \
--data-urlencode 'ans_hash=ffd55cbe0624f466bee2ea3eb576a4d0' \
--data-urlencode 'csrf=xxxx' \
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "passed": true
    }
}

获取验证码

https://api.bilibili.com/x/answer/v4/captcha

请求方式GET

认证方式APP或CookieSESSDATA

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-101账号未登录
-400请求错误
41010用户答题非法访问
41014答题过快或错误太多
41020用户基础题已通过
41021用户基础题未通过
message str 错误信息 默认为0
ttl num 1
data obj 信息本体

data对象:

字段 类型 内容 备注
type str 验证码类型? geetest极验
gt str 极验id
challenge str 极验key
token str (?)
url str (?)

示例:

curl 'https://api.bilibili.com/x/answer/v4/captcha' \
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "type": "geetest",
        "gt": "abc55d1fb914cb110cfb4c232a4b4c35",
        "challenge": "90a6e03e626e13ee186ddae0107c3ae2",
        "token": "",
        "url": ""
    }
}

提交验证码

https://api.bilibili.com/x/answer/v4/captcha/check

请求方式POST

认证方式APP或CookieSESSDATA

注:

旧版edition=0同时提交自选题分类以及验证码

新版edition=2仅仅提交验证码

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
types nums 自选题分类(旧版) 非必要 新版不需要此字段
type str 验证码类型 非必要
bilibili_token str 非必要
bilibili_code str 非必要
geetest_challenge str 极验key 非必要
geetest_seccode str 极验结果+|jordan 非必要
geetest_validate str 极验结果 非必要
csrf str CSRF Token(位于cookie) Cookie方式必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-101账号未登录
-105验证码错误
-400请求错误
41010用户答题非法访问
41014答题过快或错误太多
41021用户基础题未通过
41031自选题未通过
message str 错误信息 默认为0
ttl num 1

示例:

curl 'https://api.bilibili.com/x/answer/v4/captcha/check' \
--data-urlencode 'types=' \
--data-urlencode 'type=geetest' \
--data-urlencode 'bilibili_token=' \
--data-urlencode 'bilibili_code=' \
--data-urlencode 'geetest_challenge=3f809a7a9c51edca751fd26c032c182d' \
--data-urlencode 'geetest_seccode=513ec576a275a3eb250829202d4dce46|jordan' \
--data-urlencode 'geetest_validate=513ec576a275a3eb250829202d4dce46' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1
}

提交自选题分类

https://api.bilibili.com/x/answer/v4/pro/type/check

请求方式POST

认证方式APP或CookieSESSDATA

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
types nums 自选题分类(新版) 必要
csrf str CSRF Token(位于cookie) Cookie方式必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-101账号未登录
-400请求错误
41010用户答题非法访问
41014答题过快或错误太多
41021用户基础题未通过
41031自选题未通过
41052用户题目类型不合法
41055基础附加题未通过
message str 错误信息 默认为0
ttl num 1

示例:

选择游戏 影视 科教/知识 动画/动漫分类

curl 'https://api.bilibili.com/x/answer/v4/pro/type/check' \
--data-urlencode 'types=1,2,3,4' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1
}

提前交卷

https://api.bilibili.com/x/answer/v4/submit

请求方式POST

认证方式APP或CookieSESSDATA

当当前得分>=60时可请求本接口提前完成答题

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
csrf str CSRF Token(位于cookie) Cookie方式必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-101账号未登录
-400请求错误
41014答题过快或错误太多
41023用户答题记录不存在
41031自选题未通过
message str 错误信息 默认为0
ttl num 1
data obj 信息本体

data对象:

字段 类型 内容 备注
hid num 答题会话id
mid num 答题用户mid
score num 得分
status num 0
number num 0
result str succeed
stage str result
version str 版本 目前为v4
start_time num 本次答题开始时间 时间戳
first_answer num 0
progress str
text str
url str
in_reg_audit bool
edition num 答题版本 0旧版40+10+50
2新版40+30+30
rewards null
captcha num 1

示例:

curl 'https://api.bilibili.com/x/answer/v4/submit' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "hid": 1623207905520705,
        "mid": 293793435,
        "score": 63,
        "status": 3,
        "number": 0,
        "result": "succeed",
        "stage": "result",
        "version": "v4",
        "start_time": 1636889218,
        "first_answer": 0,
        "progress": "",
        "text": "",
        "url": "",
        "in_reg_audit": false,
        "edition": 0,
        "rewards": null,
        "captcha": 1
    }
}