# 评论区操作 - [发表评论](#发表评论) - [点赞评论](#点赞评论) - [点踩评论](#点踩评论) - [删除评论](#删除评论) - [置顶评论](#置顶评论) - [举报评论](#举报评论) --- ## 发表评论 > http://api.bilibili.com/x/v2/reply/add *请求方式:POST* 认证方式:Cookie(SESSDATA)或APP **正文参数( application/x-www-form-urlencoded ):** | 参数名 | 类型 | 内容 | 必要性 | 备注 | | ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ | | access_key | str | APP登录Token | APP方式必要 | | | type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** | | oid | num | 目标评论区id | 必要 | | | root | num | 根评论rpid | 非必要 | 二级评论以上使用 | | parent | num | 父评论rpid | 非必要 | 二级评论同根评论id
大于二级评论为要回复的评论id | | message | str | 发送评论内容 | 必要 | 最大1000字符
表情使用表情转义符 | | plat | num | 发送平台标识 | 非必要 | 1:web端
2:安卓客户端
3:ios客户端
4:wp客户端
默认为1 | | csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | **json回复:** 根对象: | 字段 | 类型 | 内容 | 备注 | | ------- | ---- | -------- | ------------------------------------------------------------ | | code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-404:无此项
-509:请求过于频繁
12001:已经存在评论主题
12002:评论区已关闭
12003:禁止回复
12006:没有该评论
12009:评论主体的type不合法
12015:需要评论验证码
12016:评论内容包含敏感信息
12025:评论字数过多
12035:该账号被UP主列入评论黑名单
12051:重复评论,请勿刷屏
**(其他错误码有待补充)** | | message | str | 错误信息 |
| | ttl | num | 1 | | | data | obj | 数据本体 | | `data`对象: | 字段 | 类型 | 内容 | 备注 | | -------------- | ----------------------------- | -------------- | ------------------------------------------------------------ | | success_action | num | 0 | **作用尚不明确** | | success_toast | str | 状态文字 | | | need_captcha | bool | false | 评论需要验证码(未证实) | | url | str | 空 | **作用尚不明确** | | rpid | num | 评论rpid | | | rpid_str | str | 评论rpid | 字串格式 | | dialog | num | 回复对方rpid | 若为一级评论则为0
若为二级评论则为该评论id
大于二级评论为上一级评论id | | dialog_str | str | 回复对方rpid | 字串格式 | | root | num | 根评论rpid | 若为一级评论则为0
大于一级评论则为根评论id | | root_str | str | 根评论rpid | 字串格式 | | parent | num | 回复父评论rpid | 若为一级评论则为0
若为二级评论则为根评论id
大于二级评论为上一级评论id | | parent_str | str | 回复父评论rpid | 字串格式 | | emote | obj | 表情转义符信息 | [对象定义见表](readme.md#评论条目对象) | | reply | 有效时:obj
无效时:null | | [对象定义见表](readme.md#评论条目对象) | **示例:** 给视频`av243322853`发送内容为`测试test[泠鸢yousa_awsl]`的评论(带有表情转义符),平台标识为1(web端) ```shell curl 'http://api.bilibili.com/x/v2/reply/add' \ --data-urlencode 'type=1' \ --data-urlencode 'oid=243322853' \ --data-urlencode 'message=测试test[泠鸢yousa_awsl]' \ --data-urlencode 'plat=1' \ --data-urlencode 'csrf=xxx' \ -b 'SESSDATA=xxx' ```
查看响应示例: ```json { "code": 0, "message": "0", "ttl": 1, "data": { "success_action": 0, "success_toast": "发送成功", "need_captcha": false, "url": "", "rpid": 3043212039, "rpid_str": "3043212039", "dialog": 0, "dialog_str": "0", "root": 0, "root_str": "0", "parent": 0, "parent_str": "0", "emote": { "[泠鸢yousa_awsl]": { "id": 2086, "package_id": 93, "state": 0, "type": 3, "attr": 0, "text": "[泠鸢yousa_awsl]", "url": "http://i0.hdslb.com/bfs/emote/7663b729161bd4556c2ec318c07791000743eb56.png", "meta": { "size": 2 }, "mtime": 1589776042 } }, "reply": { "rpid": 3043212039, "oid": 243322853, "type": 1, "mid": 293793435, "root": 0, "parent": 0, "dialog": 0, "count": 0, "rcount": 0, "state": 0, "fansgrade": 0, "attr": 0, "ctime": 1592233764, "rpid_str": "3043212039", "root_str": "0", "parent_str": "0", "like": 0, "action": 0, "member": { "mid": "293793435", "uname": "社会易姐QwQ", "sex": "男", "sign": "高中技术宅一枚,爱好MC&电子&8-bit音乐&数码&编程,资深猿厨", "avatar": "http://i1.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg", "rank": "10000", "DisplayRank": "0", "level_info": { "current_level": 5, "current_min": 0, "current_exp": 0, "next_exp": 0 }, "pendant": { "pid": 1888, "name": "泠鸢yousa", "image": "http://i0.hdslb.com/bfs/garb/item/3e66e712b8e70c6b02393c54ad5fd8d993eb39f9.png", "expire": 0, "image_enhance": "http://i0.hdslb.com/bfs/garb/item/3e66e712b8e70c6b02393c54ad5fd8d993eb39f9.png" }, "nameplate": { "nid": 0, "name": "", "image": "", "image_small": "", "level": "", "condition": "" }, "official_verify": { "type": -1, "desc": "" }, "vip": { "vipType": 2, "vipDueDate": 1612454400000, "dueRemark": "", "accessStatus": 0, "vipStatus": 1, "vipStatusWarn": "", "themeType": 0, "label": { "path": "", "text": "年度大会员", "label_theme": "annual_vip" } }, "fans_detail": null, "following": 0, "is_followed": 0, "user_sailing": { "pendant": { "id": 1888, "name": "泠鸢yousa", "image": "http://i0.hdslb.com/bfs/garb/item/3e66e712b8e70c6b02393c54ad5fd8d993eb39f9.png", "jump_url": "", "type": "suit" }, "cardbg": null, "cardbg_with_focus": null } }, "content": { "message": "测试test[泠鸢yousa_awsl]", "plat": 1, "device": "", "members": [], "emote": { "[泠鸢yousa_awsl]": { "id": 2086, "package_id": 93, "state": 0, "type": 3, "attr": 0, "text": "[泠鸢yousa_awsl]", "url": "http://i0.hdslb.com/bfs/emote/7663b729161bd4556c2ec318c07791000743eb56.png", "meta": { "size": 2 }, "mtime": 1589776042 } }, "jump_url": {}, "max_line": 0 }, "replies": null, "assist": 0, "folder": { "has_folded": false, "is_folded": false, "rule": "https://www.bilibili.com/blackboard/foldingreply.html" }, "up_action": { "like": false, "reply": false }, "show_follow": false } } } ```
## 点赞评论 > http://api.bilibili.com/x/v2/reply/action *请求方式:POST* 认证方式:Cookie(SESSDATA)或APP 点赞成功后会同时消去该评论的点踩 **正文参数( application/x-www-form-urlencoded ):** | 参数名 | 类型 | 内容 | 必要性 | 备注 | | ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- | | access_key | str | APP登录Token | APP方式必要 | | | type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** | | oid | num | 目标评论区id | 必要 | | | rpid | num | 目标评论rpid | 必要 | | | action | num | 操作代码 | 非必要 | 默认为0
0:取消赞
1:点赞 | | csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | **json回复:** 根对象: | 字段 | 类型 | 内容 | 备注 | | ------- | ---- | -------- | ------------------------------------------------------------ | | code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-404:无此项
-509:请求过于频繁
12002:评论区已关闭
12004:禁止操作 赞或踩
12006:没有该评论
12009:评论主体的type不合法
12011:不合法的赞或踩
**(其他错误码有待补充)** | | message | str | 错误信息 | 默认为0 | | ttl | num | 1 | | **示例:** 点赞视频`av243322853`下评论`rpid=3039053308` ```shell curl 'http://api.bilibili.com/x/v2/reply/action' \ --data-urlencode 'type=1' \ --data-urlencode 'oid=243322853' \ --data-urlencode 'rpid=3039053308' \ --data-urlencode 'action=1' \ --data-urlencode 'csrf=xxx' \ -b 'SESSDATA=xxx' ```
查看响应示例: ```json { "code": 0, "message": "0", "ttl": 1 } ```
## 点踩评论 > http://api.bilibili.com/x/v2/reply/hate *请求方式:POST* 认证方式:Cookie(SESSDATA)或APP 点踩成功后会同时消去该评论的点赞 **正文参数( application/x-www-form-urlencoded ):** | 参数名 | 类型 | 内容 | 必要性 | 备注 | | ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- | | access_key | str | APP登录Token | APP方式必要 | | | type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** | | oid | num | 目标评论区id | 必要 | | | rpid | num | 目标评论rpid | 必要 | | | action | num | 操作代码 | 非必要 | 默认为0
0:取消踩
1:点踩 | | csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | **json回复:** 根对象: | 字段 | 类型 | 内容 | 备注 | | ------- | ---- | -------- | ------------------------------------------------------------ | | code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-404:无此项
-509:请求过于频繁
12002:评论区已关闭
12004:禁止操作 赞或踩
12006:没有该评论
12009:评论主体的type不合法
12011:不合法的赞或踩
**(其他错误码有待补充)** | | message | str | 错误信息 | 默认为0 | | ttl | num | 1 | | **示例:** 点踩视频`av243322853`下评论`rpid=3039053308` ```shell curl 'http://api.bilibili.com/x/v2/reply/hate' \ --data-urlencode 'type=1' \ --data-urlencode 'oid=243322853' \ --data-urlencode 'rpid=3039053308' \ --data-urlencode 'action=1' \ --data-urlencode 'csrf=xxx' \ -b 'SESSDATA=xxx' ```
查看响应示例: ```json { "code": 0, "message": "0", "ttl": 1 } ```
## 删除评论 > http://api.bilibili.com/x/v2/reply/del *请求方式:POST* 认证方式:Cookie(SESSDATA)或APP 只能删除自己的评论,或自己管理的评论区下的评论 **正文参数( application/x-www-form-urlencoded ):** | 参数名 | 类型 | 内容 | 必要性 | 备注 | | ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- | | access_key | str | APP登录Token | APP方式必要 | | | type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** | | oid | num | 目标评论区id | 必要 | | | rpid | num | 目标评论rpid | 必要 | | | csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | **json回复:** 根对象: | 字段 | 类型 | 内容 | 备注 | | ------- | ---- | -------- | ------------------------------------------------------------ | | code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-403:权限不足
-404:无此项
-509:请求过于频繁
12002:评论区已关闭
12009:评论主体的type不合法
12022:已经被删除了
**(其他错误码有待补充)** | | message | str | 错误信息 | 默认为0 | | ttl | num | 1 | **作用尚不明确** | **示例:** 删除`av243322853`下评论`rpid=3039053308` ```shell curl 'http://api.bilibili.com/x/v2/reply/del' \ --data-urlencode 'type=1' \ --data-urlencode 'oid=243322853' \ --data-urlencode 'rpid=3039053308' \ --data-urlencode 'csrf=xxx' \ -b 'SESSDATA=xxx' ```
查看响应示例: ```json { "code": 0, "message": "0", "ttl": 1 } ```
## 置顶评论 > http://api.bilibili.com/x/v2/reply/top *请求方式:POST* 认证方式:Cookie(SESSDATA)或APP 只能置顶自己管理的评论区中的一级评论 **正文参数( application/x-www-form-urlencoded ):** | 参数名 | 类型 | 内容 | 必要性 | 备注 | | ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- | | access_key | str | APP登录Token | APP方式必要 | | | type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** | | oid | num | 目标评论区id | 必要 | | | rpid | num | 目标评论rpid | 必要 | | | action | num | 操作代码 | 非必要 | 默认为0
0:取消置顶
1:设为置顶 | | csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | **json回复:** 根对象: | 字段 | 类型 | 内容 | 备注 | | ------- | ---- | -------- | ------------------------------------------------------------ | | code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-403:权限不足
-404:无此项
-509:请求过于频繁
12002:评论区已关闭
12006:没有该评论
12009:评论主体的type不合法
12029:已经有置顶评论
12030:不能置顶非一级评论
**(其他错误码有待补充)** | | message | str | 错误信息 | 默认为0 | | ttl | num | 1 | | **示例:** 置顶视频`av243322853`下评论`rpid=2940645593` ```shell curl 'http://api.bilibili.com/x/v2/reply/top' \ --data-urlencode 'type=1' \ --data-urlencode 'oid=243322853' \ --data-urlencode 'rpid=2940645593' \ --data-urlencode 'action=1' \ --data-urlencode 'csrf=xxx' \ -b 'SESSDATA=xxx' ```
查看响应示例: ```json { "code": 0, "message": "0", "ttl": 1 } ```
## 举报评论 > http://api.bilibili.com/x/v2/reply/report *请求方式:POST* 认证方式:Cookie(SESSDATA)或APP **正文参数( application/x-www-form-urlencoded ):** | 参数名 | 类型 | 内容 | 必要性 | 备注 | | ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- | | access_key | str | APP登录Token | APP方式必要 | | | type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** | | oid | num | 目标评论区id | 必要 | | | rpid | num | 目标评论rpid | 必要 | | | reason | num | 举报类型 | 必要 | **类型代码见下表** | | content | str | 其他举报备注 | 非必要 | `reason=0`时有效 | | csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | 举报类型`reason`: | 代码 | 含义 | | ---- | -------------- | | 0 | 其他 | | 1 | 垃圾广告 | | 2 | 色情 | | 3 | 刷屏 | | 4 | 引战 | | 5 | 剧透 | | 6 | 政治 | | 7 | 人身攻击 | | 8 | 内容不相关 | | 9 | 违法违规 | | 10 | 低俗 | | 11 | 非法网站 | | 12 | 赌博诈骗 | | 13 | 传播不实信息 | | 14 | 怂恿教唆信息 | | 15 | 侵犯隐私 | | 16 | 抢楼 | | 17 | 青少年不良信息 | **json回复:** 根对象: | 字段 | 类型 | 内容 | 备注 | | ------- | ---- | -------- | ------------------------------------------------------------ | | code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-403:权限不足
-404:无此项
-500:服务器错误
-509:请求过于频繁
12002:评论区已关闭
12006:没有该评论
12008:已经举报过了
12009:评论主体的type不合法
12019:举报过于频繁
**(其他错误码有待补充)** | | message | str | 错误信息 | 默认为0 | | ttl | num | 1 | | **示例:** 举报视频` av752881391 `下评论`rpid=3062537442`,理由是`引战` ```shell curl 'http://api.bilibili.com/x/v2/reply/report' \ --data-urlencode 'type=1' \ --data-urlencode 'oid=752881391' \ --data-urlencode 'rpid=3062537442' \ --data-urlencode 'reason=4' \ --data-urlencode 'csrf=xxx' \ -b 'SESSDATA=xxx' ```
查看响应示例: ```json { "code": 0, "message": "0", "ttl": 1 } ```