# 发布动态 ## 为图片动态上传图片 > https://api.bilibili.com/x/dynamic/feed/draw/upload_bfs *请求方式:POST* 认证方式:Cookie(SESSDATA) 注意:非日常类型像素宽高必须大于420 **正文参数 (multipart/form-data):** | 参数名 | 类型 | 内容 | 必要性 | 备注 | | -------- | ---- | ------------------------ | ------ | ------------------------------------------------------------ | | file_up | file | 需要上传的图片文件 | 必要 | 格式仅支持jpg png gif | | category | str | 图片类型 | 必要 | daily:日常(动态)
draw:绘画(画友)
cos:摄影(COSPLAY) | | biz | str | | | | | csrf | str | CSRF Token(位于cookie) | 必要 | | **json回复:** 根对象: | 字段 | 类型 | 内容 | 备注 | | ------- | ---- | -------- | ------------------------------------------------------------ | | code | num | 返回值 | 0:成功
-1:未添加图片
-2:参数错误
-3:图片尺寸过小
-4:账号未登录
-7:图片信息错误 | | message | str | 错误信息 | 默认为success | | data | obj | 信息本体 | 仅在正确时既`code=0`时为有效信息 | `data`对象: | 字段 | 类型 | 内容 | 备注 | | ------------ | ---- | -------------- | ---- | | image_url | str | 已上传图片url | | | image_width | num | 已上传图片宽度 | 像素 | | image_height | num | 已上传图片高度 | 像素 | **示例:** 上传了一张图片`test.png`类型为`日常` ```shell curl 'https://api.bilibili.com/x/dynamic/feed/draw/upload_bfs' \ -F 'file_up=@test.png' \ -F 'category=daily' -b 'SESSDATA=xxx' ```
查看响应示例: ```json { "code":0, "message":"success", "data":{ "image_url":"http:\/\/i0.hdslb.com\/bfs\/album\/13f9523efe186a8066b2d72e80283cea2437eb62.png", "image_width":1225, "image_height":850 } } ```
## 创建投票 > https://api.vc.bilibili.com/vote_svr/v1/vote_svr/create_vote *请求方式:POST* 认证方式:Cookie(SESSDATA) 注意: options最少两个,下标n从0开始 **正文参数 (multipart/form-data):** | 参数名 | 类型 | 内容 | 必要性 | 备注 | | ---------------------------- | ---- | ------------------------ | ------ | -------------------------------------------------------- | | info[title] | str | 投票标题 | 必要 | | | info[desc] | str | 投票描述 | 非必要 | 可为空 | | info[type] | num | 投票类型 | 必要 | 0:文字投票 1:图片投票 | | info[choice_cnt] | num | 最多选几项 | 必要 | | | info[duration] | num | 投票持续秒数 | 必要 | 常用:
三天:259200
七天:604800
三十天:2592000 | | info[options]\[ n ][desc] | str | 第n项选项文字内容 | 必要 | | | info[options]\[ n ][img_url] | str | 第n项选项投票图片 | 非必要 | | | csrf | str | CSRF Token(位于cookie) | 非必要 | 头次见非必要的csrf | **json回复:** 根对象: | 字段 | 类型 | 内容 | 备注 | | ------- | ---- | -------- | -------------------------------- | | code | num | 返回值 | 0:成功
5100001: 参数错误 | | msg | str | 错误信息 | 成功为空 | | message | str | 错误信息 | 跟上面那个一模一样 | | data | obj | 信息本体 | 仅在正确时既`code=0`时为有效信息 | `data`对象: | 字段 | 类型 | 内容 | 备注 | | ------------ | ---- | -------------- | ---- | | vote_id | num | 投票id | | | \_gt\_ | num | 0 | | **示例:** 创建一个标题为`是否自愿开学`持续七天的纯文本投票 ```shell curl -X POST 'https://api.vc.bilibili.com/vote_svr/v1/vote_svr/create_vote' \ --data-urlencode 'info[title]=是否自愿开学' \ --data-urlencode 'info[desc]=问卷调查:自愿开学' \ --data-urlencode 'info[type]=0' \ --data-urlencode 'info[choice_cnt]=1' \ --data-urlencode 'info[duration]=604800' \ --data-urlencode 'info[options][0][desc]=自愿' \ --data-urlencode 'info[options][1][desc]=不自愿' \ -b 'SESSDATA=xxx' ```
查看响应示例: ```json { "code": 0, "msg": "", "message": "", "data": { "vote_id": 4947171, "_gt_": 0 } } ```
## 发表纯文本动态 > https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/create *请求方式:POST* 认证方式:Cookie (SESSDATA) **正文参数(multipart/form-data):** | 参数名 | 类型 | 内容 | 必要性 | 备注 | | --- | --- | --- | --- | --- | | dynamic_id | num | 0 | 必要 | | | type | num | 4 | 必要 | | | rid | num | 0 | 必要 | | | content | str | 动态内容 | 必要 | | | up_choose_comment | num | 0 | 非必要 | | | up_close_comment | num | 0 | 非必要 | | | extension | json | 位置信息 | 非必要 | | | at_uids | str | 动态中 at 到的用户的 uid | 非必要 | 使用逗号`,`分隔 | | ctrl | array | 特殊格式控制 (如 at 别人时的蓝字体和链接) | 非必要 | | | csrf_token | str | CSRF Token (位于 cookie) | 非必要 | | | csrf | str | CSRF Token (位于 cookie) | 非必要 | | extension参数值: ```json { "emoji_type": 1, "lbs_cfg": { "title": "**市", "poi": "156330200", "show_title": "**市", "type": 1, "address": "**市", "location": { "lng":显示的经度数值, "lat":显示的纬度数值 }, "distance": 0 }, "flag_cfg": {}, "from_cfg": { "location": { "lat":用户实际纬度数值, "lng":用户实际经度数值 } } } ``` ctrl单个对象(注意用的时候是数组出现): | 参数名 | 类型 | 内容 | | --- | --- | --- | | location | num | 从全文第几个字开始变蓝 | | type | num | 1 (可能1代表链接到用户uid) | | length | num | 这一段变蓝多少字 | | data | str | 链接目标(被at人的uid) | **json回复:** 根对象: | 字段 | 类型 | 内容 | 备注 | | --- | --- | --- | --- | | code | num | 返回值 | 0:成功 | | message | str | 错误信息 | 成功为空 | | data | obj | 数据本体 | | `data`对象: | 字段 | 类型 | 内容 | 备注 | | --- | --- | --- | --- | | result | num | 0 | | | errmsg | str | 像是服务器日志一样的东西 | | | dynamic_id | num | 动态 id | | | create_result | num | 1 | | | dynamic_id_str | str | 动态 id | 字符串格式 | | \_gt_ | num | 0 | |
查看示例(纯文本) ```bash curl 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/create' \ --data-urlencode 'dynamic_id=0' \ --data-urlencode 'type=4' \ --data-urlencode 'rid=0' \ --data-urlencode 'content=Hello Bug~' \ --data-urlencode 'up_choose_comment=0' \ --data-urlencode 'up_close_comment=0' \ --data-urlencode 'extension={"emoji_type":1,"from":{"emoji_type":1},"flag_cfg":{}}' \ --data-urlencode 'at_uids=' \ --data-urlencode 'ctrl=[]' \ --data-urlencode 'csrf_token=de2731532b4ab96bc8536da948932668' \ --data-urlencode 'csrf=de2731532b4ab96bc8536da948932668' \ -b 'SESSDATA=******' ``` ```json { "code": 0, "msg": "", "message": "", "data": { "result": 0, "errmsg": "; Create dynamic:588320531406678918, res:0, result:1; Push create kafka:0; Push create databus:0; Register comment result:0; Add outbox result:1", "dynamic_id": 588320531406678918, "create_result": 1, "dynamic_id_str": "588320531406678918", "_gt_": 0 } } ```
查看示例(at两个人) 动态正文 ``` [热词系列_神仙UP]@暮光小猿wzt @社会易姐QwQ ``` at_uids ``` 15858903,293793435 ``` ctrl ```json [ { "location": 11, "type": 1, "length": 9, "data": "15858903" }, { "location": 20, "type": 1, "length": 9, "data": "293793435" } ] ``` 命令 ```bash curl 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/create' \ --data-urlencode 'dynamic_id': '0' \ --data-urlencode 'type': '4' \ --data-urlencode 'rid': '0' \ --data-urlencode 'content': '[热词系列_神仙UP]@暮光小猿wzt @社会易姐QwQ ' \ --data-urlencode 'up_choose_comment': '0' \ --data-urlencode 'up_close_comment': '0' \ --data-urlencode 'extension': '{"emoji_type":1,"from":{"emoji_type":1},"flag_cfg":{}}' \ --data-urlencode 'at_uids': '15858903,293793435' \ --data-urlencode 'ctrl': '[{"location":11,"type":1,"length":9,"data":"15858903"},{"location":20,"type":1,"length":9,"data":"293793435"}]' \ --data-urlencode 'csrf_token': 'de2731532b4ab96bc8536da948932668' \ --data-urlencode 'csrf': 'de2731532b4ab96bc8536da948932668' \ -b 'SESSDATA=******' ```
## 发表复杂动态 > https://api.bilibili.com/x/dynamic/feed/create/dyn *请求方式:POST* 认证方式:Cookie (SESSDATA) **URL参数** | 参数名 | 类型 | 内容 | 必要性 | 备注 | | ------ | ---- | ------------------------ | ------ | ---- | | csrf | str | CSRF Token(位于cookie) | 必要 | | **正文参数(application/json):** | 参数名 | 类型 | 内容 | 必要性 | 备注 | | --- | --- | --- | --- | --- | | dyn_req | obj | 请求本体 | 必要 | | `dyn_req`对象: | 参数名 | 类型 | 内容 | 必要性 | 备注 | | --- | --- | --- | --- | --- | | attach_card | obj | 特殊卡片 | 非必要 | 如直播预约等 | | content | obj | 动态内容 | 必要 | | | meta | obj | 元信息 | 非必要 | 大概是来源信息 | | scene | num | 动态类型? | 必要 | 纯文本: 1
带图: 2 | | pics | array | 携带图片 | 非必要 | 最多九个 | | topic | obj | 话题 | 非必要 | | | option | obj | 互动设置 | 非必要 | 没有此项时默认开启评论区 | | upload_id | str | 客户端生成的 | 非必要 | 内容为`发送人mid`+`当前秒级时间戳`+`四位随机整数`,中间用`_`隔开 | `dyn_req`对象的`meta`对象,大概是来源信息,很简单就不详细列表了: ```json { "app_meta": { "from": "create.dynamic.web", "mobi_app": "web" } } ``` `dyn_req`对象的`content`对象: | 参数名 | 类型 | 内容 | 必要性 | 备注 | | -------- | ----- | -------------------- | ------ | ---- | | contents | array | 动态组件对象有序数组 | 必要 | | `contents`数组内每一个动态组件对象: ```json { "raw_text": "ui上直接显示的字符串", "type": 组件类型id, "biz_id": "动态组件的内容id转字符串,比如投票id" } ``` 动态组件类型: | 组件名 | type | `biz_id`含义 | | ------ | ---- | ------------ | | 纯文本 | 1 | 空 | | AT人 | 2 | AT人的mid | | 表情 | 9 | 空 | | 投票 | 4 | 投票id | `dyn_req`对象的`topic`对象 | 参数名 | 类型 | 内容 | 必要性 | 备注 | | ------------- | ---- | ------- | ------ | -------------------------- | | from_source | str | 来源id? | 必要 | 网页版直接选为dyn.web.list | | from_topic_id | num | 0 | 必要 | | | id | num | 话题id | 必要 | | | name | str | 话题名 | 必要 | | `dyn_req`对象的`pics`数组的每一项对象: | 参数名 | 类型 | 内容 | 必要性 | 备注 | | ---------- | ----- | ---------------- | ------ | ------------------------------------------------------------ | | img_height | num | 图片高 | 非必要 | 这个东西会直接原封不动传到前端,比如你都写0在网页上就看不见了,但是还会加载 | | img_width | num | 图片宽 | 非必要 | 同上 | | img_size | float | 图片文件大小(KB) | 非必要 | | | img_src | str | 图片bfs链接 | 必要 | | `dyn_req`对象的`option`对象: | 参数名 | 类型 | 内容 | 必要性 | 备注 | | ----------------- | ---- | ------------ | ------ | --------------- | | up_choose_comment | num | 精选评论flag | 非必要 | 1: 开启 | | close_comment | num | 关闭评论flag | 非必要 | 同上,与上二选一 | `dyn_req`对象的`topic`对象: | 参数名 | 类型 | 内容 | 必要性 | 备注 | | ------------- | ---- | ------------ | ------ | -------- | | from_source | str | dyn.web.list | 非必要 | 作用不明 | | from_topic_id | num | 0 | 非必要 | 作用不明 | | id | num | 话题id | 必要 | | | name | str | 话题名 | 非必要 | | **json回复:** 根对象: | 字段 | 类型 | 内容 | 备注 | | --- | --- | --- | --- | | code | num | 返回值 | 0:成功 | | message | str | 错误信息 | 成功为空 | | data | obj | 数据本体 | | `data`对象: 当Cookie中含有任意的`buvid3`时,比较干净简洁: | 字段 | 类型 | 内容 | 备注 | | --- | --- | --- | --- | | result | num | 0 | | | message | str | 错误信息 | | | dyn_id | num | 动态 id | | | dyn_id_str | str | 动态 id | 字符串格式 | | dyn_type | num | 动态类型 | 不带图片: 4
带图片: 2
其他请参考 get_dynamic_detail.md | | \_gt_ | num | 0 | | **警告:下面的内容又乱又杂,而且绝大多数情况用不到,我建议大家用这个接口的时候随便带一个buvid3的cookie屏蔽掉它们算了.** 当Cookie中不含有`buvid3`时,较上述字段多出一个`fake_card`对象,大概是移动端用的卡片: | 字段 | 类型 | 内容 | 备注 | | --------- | ---- | ---- | ------------ | | fake_card | obj | 0 | 又多又乱又杂 | `fake_card`对象: | 字段 | 类型 | 内容 | 备注 | | --------- | ----- | ------------ | ------------------------------------------------------------ | | card_type | num | 卡片类型 | 不带图片: 4
带图片: 2
其他请参考 [获取特定动态卡片信息](get_dynamic_detail.md) | | modules | array | 卡片组件列表 | | | extend | obj | 其他杂项信息 | | `fake_card`对象的`modules`数组中每一项对象: | 字段 | 类型 | 内容 | 备注 | | ----------- | ---- | -------- | -------------------------------------------- | | module_type | num | 组件类型 | 1: 作者信息
3: 动态内容
其他有待发现 | | ModuleItem | obj | 卡片组件 | | `ModuleItem`对象与`module_type`对应关系: | module_type | `ModuleItem`含有的唯一一个key | 备注 | | ----------- | ----------------------------- | ----------------------- | | 1 | module_author | 作者信息 | | 3 | module_desc | 动态内容 | | 4 | module_dynamic | 携带图片等 | | 9 | module_stat | 不明,貌似一直都是空对象 | `ModuleItem`内`module_author`: | 字段 | 类型 | 内容 | 备注 | | ---------------- | ---- | -------------------------------- | ------------------------------------------------ | | mid | num | 发送者mid | | | ptime_label_text | str | 发送时间(人类可读形式)肯定是刚刚 | | | author | obj | 作者详细信息 | 请参考[用户基本信息](../user/info.md),不再赘述.. | `ModuleItem`内`module_desc`: | 字段 | 类型 | 内容 | 备注 | | ---- | ----- | -------------- | ---- | | desc | array | 动态组件列表 | | | text | str | 动态纯文本形式 | | `module_desc`的`desc`数组: | 项 | 类型 | 备注 | | ---- | ---- | ------------------- | | 0 | obj | 第0个动态组件 | | n | obj | 第n+1个动态组件组件 | | ... | obj | ... | `desc`数组的每一项: | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ------------------------------------------------ | ----------------------------- | | text | str | 该组件对外显示的纯文本 | 对应请求时该组件的`raw_text` | | type | num | 组件类型 | 对应请求时该组件的`type` | | rid | str | 组件内容的id,例如@人的mid | 根据需要出现,比如纯文本就没有 | | uri | str | b站自定义`bilibili://`协议链接,用于@人点击跳转等 | 根据需要出现,比如纯文本就没有 | `ModuleItem`内`module_dynamic`: | 字段 | 类型 | 内容 | 备注 | | ---------- | ---- | ------------------ | -------------------- | | type | num | 不知道是什么的类型 | 5: 图片
其他未知 | | ModuleItem | obj | 组件? | 怎么还有套娃的? | 当`module_dynamic`的`type`字段为`5`时: `module_dynamic`的`ModuleItem`有唯一key`dyn_draw`: | 字段 | 类型 | 内容 | 备注 | | ----- | ----- | -------------------------------- | ------------------------------------------------ | | items | array | 图片数组 | 与请求部分`dyn_req.pics`一致 | | id | num | 这条图片动态所对应的相簿`doc_id` | 可以参考本文档的[相簿基本信息](../album/info.md) | `fake_card`的`extend`对象: | 字段 | 类型 | 内容 | 备注 | | ------------- | ----- | ---------------------------------------------- | ---------------------------------------- | | dyn_id_str | str | 动态id字符串形式 | | | business_id | str | 未知 | 根据情况出现 | | orif_img_url | str | 封面图url(如果有) | | | share_type | str | 一般为3 | 未知 | | share_scene | str | 一般为dynamic | 未知 | | is_fast_share | bool | 一般为true | 未知 | | dyn_type | num | 动态类型 | 不带图片: 4
带图片: 2
其他待探索 | | uid | num | 发送者mid | | | card_url | str | b站自定义`bilibili://`协议链接,指向该条动态 | | | desc | array | 动态组件列表,重复了一遍`module_desc`的desc数组 | | | reply | obj | 评论区相关 | | `extend`的`reply`对象: | 字段 | 类型 | 内容 | 备注 | | ------ | ----- | ------------------------------------------------- | ---- | | uri | str | b站自定义`bilibili://`协议链接,指向该条动态评论区 | | | params | array | 未知 | |
查看示例(不带`buvid3`) ```bash curl -X POST 'https://api.bilibili.com/x/dynamic/feed/create/dyn?csrf=xxxxx' \ -b 'buvid3=114514;SESSDATA=xxxxx;' \ --header 'Content-Type: application/json' \ --data-raw '{ "dyn_req": { "content": { "contents": [ { "raw_text": "Test", "type": 1, "biz_id": "" }, { "raw_text": "礼堂丁真,鉴定为一眼丁真", "type": 2, "biz_id": "1463028352" } ] }, "pics": [ { "img_src": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png", "img_width": 1368, "img_height": 1500, "img_size": 662.6005859375 }, { "img_src": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png", "img_width": 1368, "img_height": 1500, "img_size": 662.6005859375 } ], "option": { "close_comment": 1 }, "scene": 2 } }' ``` 响应: ```json { "code": 0, "message": "0", "ttl": 1, "data": { "dyn_id": 755402937023332386, "dyn_id_str": "755402937023332386", "dyn_type": 2, "dyn_rid": 221621929, "fake_card": { "card_type": 7, "modules": [ { "module_type": 1, "ModuleItem": { "module_author": { "mid": 470310172, "ptime_label_text": "刚刚", "author": { "mid": 470310172, "name": "I_Min", "face": "https://i1.hdslb.com/bfs/face/d36e9dc2d14b545a055980a2f3c1f2d5621646c6.png", "official": { "type": -1 }, "vip": { "Type": 1, "due_date": 1673366400000, "label": {} }, "uri": "bilibili://space/470310172?defaultTab=dynamic", "pendant": {}, "nameplate": { "nid": 3, "name": "白银殿堂", "image": "https://i1.hdslb.com/bfs/face/f6a31275029365ae5dc710006585ddcf1139bde1.png", "image_small": "https://i0.hdslb.com/bfs/face/b09cdb4c119c467cf2d15db5263b4f539fa6e30b.png", "level": "高级勋章", "condition": "单个自制视频总播放数>=10万" } }, "decorate_card": { "id": 984, "card_url": "https://i0.hdslb.com/bfs/vip/e42569d2f91a17346cdb991c7c34d3bbc677d4ef.png", "jump_url": "https://www.bilibili.com/h5/mall/equity-link/home?navhide=1&item_id=984&part=card&f_source=garb&from=post&isdiy=0", "fan": { "number_str": "000000" } }, "tp_list": [ { "type": 3, "Item": { "share": { "icon": "http://i0.hdslb.com/bfs/feed-admin/ee5902a63bbe4a0d78646d11036b062ea60573f6.png", "title": "分享" } } }, { "type": 7, "Item": { "default": { "icon": "http://i0.hdslb.com/bfs/feed-admin/9163a7b29964cb84cb5fc35e4f7b899151cf2afc.png", "title": "删除" } } } ] } } }, { "module_type": 3, "ModuleItem": { "module_desc": { "desc": [ { "text": "Test", "type": 1 }, { "text": "礼堂丁真,鉴定为一眼丁真", "type": 2, "uri": "bilibili://space/1463028352?defaultTab=dynamic", "rid": "1463028352" } ], "text": "Test礼堂丁真,鉴定为一眼丁真" } } }, { "module_type": 4, "ModuleItem": { "module_dynamic": { "type": 5, "ModuleItem": { "dyn_draw": { "items": [ { "src": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png", "width": 1368, "height": 1500, "size": 662.6006 }, { "src": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png", "width": 1368, "height": 1500, "size": 662.6006 } ], "id": 221621929 } } } } }, { "module_type": 9, "ModuleItem": { "module_stat": {} } } ], "extend": { "dyn_id_str": "755402937023332386", "business_id": "221621929", "orig_img_url": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png", "desc": [ { "text": "Test", "type": 1 }, { "text": "礼堂丁真,鉴定为一眼丁真", "type": 2, "uri": "bilibili://space/1463028352?defaultTab=dynamic", "rid": "1463028352" } ], "share_type": "3", "share_scene": "dynamic", "is_fast_share": true, "dyn_type": 2, "uid": 470310172, "card_url": "bilibili://following/detail/755402937023332386?cardType=2&rid=221621929", "reply": { "uri": "bilibili://following/detail/755402937023332386?cardType=2&rid=221621929", "params": [ { "key": "comment_on", "value": "1" } ] } } } } } ```
查看示例(带`buvid3`) 动态正文 ``` Test礼堂丁真,鉴定为一眼丁真 ``` 带两张一样的图: http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png 然后关闭评论区 命令 ```bash curl -X POST 'https://api.bilibili.com/x/dynamic/feed/create/dyn?csrf=xxxxx' \ -b 'buvid3=114514;SESSDATA=xxxxx;' \ --header 'Content-Type: application/json' \ --data-raw '{ "dyn_req": { "content": { "contents": [ { "raw_text": "Test", "type": 1, "biz_id": "" }, { "raw_text": "礼堂丁真,鉴定为一眼丁真", "type": 2, "biz_id": "1463028352" } ] }, "pics": [ { "img_src": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png", "img_width": 1368, "img_height": 1500, "img_size": 662.6005859375 }, { "img_src": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png", "img_width": 1368, "img_height": 1500, "img_size": 662.6005859375 } ], "option": { "close_comment": 1 }, "scene": 2 } }' ``` 响应: ```json { "code": 0, "message": "0", "ttl": 1, "data": { "dyn_id": 755402172521250838, "dyn_id_str": "755402172521250838", "dyn_type": 2, "dyn_rid": 221621773 } } ```
## 立即发布定时动态 > https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/publish_now *请求方式:POST* 认证方式:Cookie(SESSDATA) **正文参数 (application/x-www-form-urlencoded):** | 参数名 | 类型 | 内容 | 必要性 | 备注 | | -------- | ---- | ------------------------ | ------ | ---- | | draft_id | file | 定时动态(草稿)id | 必要 | | | csrf | str | CSRF Token(位于cookie) | 必要 | | **json回复:** 根对象: | 字段 | 类型 | 内容 | 备注 | | ------- | ---- | -------- | ------------ | | code | num | 返回值 | 0:成功 | | data | obj | 信息本体 | 正常为空对象 | | message | str | 错误消息 | 正常为"0" | | ttl | num | 1 | 不明 |
查看示例 ```bash curl -X POST 'https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/publish_now' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'draft_id=755409289278914611' \ --data-urlencode 'csrf=xxx' -b 'SESSDATA=xxxx;' ``` ```json { "code":0, "message":"0", "ttl":1, "data":{} } ```