diff --git a/docs/message/private_msg.md b/docs/message/private_msg.md index cee62c0..2e870fe 100644 --- a/docs/message/private_msg.md +++ b/docs/message/private_msg.md @@ -159,106 +159,6 @@ curl 'https://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread' \ -## 会话详细信息 - -> https://api.vc.bilibili.com/session_svr/v1/session_svr/session_detail - -*请求方式:GET* - -认证方式:Cookie(SESSDATA) - -若从未与该会话聊过天,则返回 1000004 `入口节点已存在` 错误 - -**url参数:** - -| 参数名 | 类型 | 内容 | 必要性 | 备注 | -| ------------ | ---- | ---------------- | ------ | ------------------------------------------------------ | -| talker_id | num | 聊天对象的id | 必要 | `session_type` 为 `1` 时表示用户 mid,为 `2` 时表示粉丝团 id | -| session_type | num | 聊天对象的类型 | 必要 | 1:用户
2:粉丝团 | -| build | num | 客户端内部版本号 | 非必要 | 默认为 `0` | -| mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 | - -**json回复:** - -根对象: - -| 字段 | 类型 | 内容 | 备注 | -| ------- | ---- | -------- | ------------------------------------------------------------------------------ | -| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
1000004:入口节点已存在 | -| msg | str | 错误信息 | 默认为0 | -| message | str | 错误信息 | 默认为0 | -| ttl | num | 1 | | -| data | obj | 数据本体 | 详见[会话对象](#会话对象) | - -**示例:** - -获取会话`talker_id=293793435&session_type=1`的详细信息: - -```shell -curl -G 'https://api.vc.bilibili.com/session_svr/v1/session_svr/session_detail' \ - --data-urlencode 'talker_id=293793435' \ - --data-urlencode 'session_type=1' \ - --data-urlencode 'build=0' \ - --data-urlencode 'mobi_app=web' \ - -b 'SESSDATA=xxx' -``` - -
-查看响应示例: - -```json -{ - "code": 0, - "msg": "0", - "message": "0", - "ttl": 1, - "data": { - "talker_id": 293793435, - "session_type": 1, - "at_seqno": 0, - "top_ts": 0, - "group_name": "", - "group_cover": "", - "is_follow": 1, - "is_dnd": 0, - "ack_seqno": 1236306587877408, - "ack_ts": 1709536984481314, - "session_ts": 1709385615744065, - "unread_count": 0, - "last_msg": { - "sender_uid": 293793435, - "receiver_type": 1, - "receiver_id": 425503913, - "msg_type": 11, - "content": "{\"title\":\"OHHHHHH家人们,我分数终于破w了!紫框了这下确实不好意思说自己是只打红谱的萌新了\",\"times\":14,\"cover\":\"http://i0.hdslb.com/bfs/archive/8821c03ab27a0bcf2bf32af814e758ab17a1e27e.png\",\"rid\":1951316064,\"type_\":8,\"desc\":\"OHHHHHH家人们,我分数终于破w了!紫框了这下确实不好意思说自己是只打红谱的萌新了\",\"bvid\":\"BV1zC411p7JN\",\"view\":452,\"danmaku\":0,\"pub_date\":1709385603,\"attach_msg\":null}", - "msg_seqno": 1236306587877408, - "timestamp": 1709385615, - "at_uids": null, - "msg_key": 7341755312943193481, - "msg_status": 0, - "notify_code": "", - "new_face_version": 1, - "msg_source": 6 - }, - "group_type": 0, - "can_fold": 0, - "status": 0, - "max_seqno": 1236306587877408, - "new_push_msg": 0, - "setting": 0, - "is_guardian": 0, - "is_intercept": 0, - "is_trust": 0, - "system_msg_type": 0, - "live_status": 0, - "biz_msg_unread_count": 0, - "user_label": null - } -} -``` - -
- ## 新会话列表 > https://api.vc.bilibili.com/session_svr/v1/session_svr/new_sessions @@ -472,6 +372,106 @@ curl -G 'https://api.vc.bilibili.com/session_svr/v1/session_svr/new_sessions' \ +## 会话详细信息 + +> https://api.vc.bilibili.com/session_svr/v1/session_svr/session_detail + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +若从未与该会话聊过天,则返回 1000004 `入口节点已存在` 错误 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------ | ---- | ---------------- | ------ | ------------------------------------------------------ | +| talker_id | num | 聊天对象的id | 必要 | `session_type` 为 `1` 时表示用户 mid,为 `2` 时表示粉丝团 id | +| session_type | num | 聊天对象的类型 | 必要 | 1:用户
2:粉丝团 | +| build | num | 客户端内部版本号 | 非必要 | 默认为 `0` | +| mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
1000004:入口节点已存在 | +| msg | str | 错误信息 | 默认为0 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 数据本体 | 详见[会话对象](#会话对象) | + +**示例:** + +获取会话`talker_id=293793435&session_type=1`的详细信息: + +```shell +curl -G 'https://api.vc.bilibili.com/session_svr/v1/session_svr/session_detail' \ + --data-urlencode 'talker_id=293793435' \ + --data-urlencode 'session_type=1' \ + --data-urlencode 'build=0' \ + --data-urlencode 'mobi_app=web' \ + -b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "0", + "message": "0", + "ttl": 1, + "data": { + "talker_id": 293793435, + "session_type": 1, + "at_seqno": 0, + "top_ts": 0, + "group_name": "", + "group_cover": "", + "is_follow": 1, + "is_dnd": 0, + "ack_seqno": 1236306587877408, + "ack_ts": 1709536984481314, + "session_ts": 1709385615744065, + "unread_count": 0, + "last_msg": { + "sender_uid": 293793435, + "receiver_type": 1, + "receiver_id": 425503913, + "msg_type": 11, + "content": "{\"title\":\"OHHHHHH家人们,我分数终于破w了!紫框了这下确实不好意思说自己是只打红谱的萌新了\",\"times\":14,\"cover\":\"http://i0.hdslb.com/bfs/archive/8821c03ab27a0bcf2bf32af814e758ab17a1e27e.png\",\"rid\":1951316064,\"type_\":8,\"desc\":\"OHHHHHH家人们,我分数终于破w了!紫框了这下确实不好意思说自己是只打红谱的萌新了\",\"bvid\":\"BV1zC411p7JN\",\"view\":452,\"danmaku\":0,\"pub_date\":1709385603,\"attach_msg\":null}", + "msg_seqno": 1236306587877408, + "timestamp": 1709385615, + "at_uids": null, + "msg_key": 7341755312943193481, + "msg_status": 0, + "notify_code": "", + "new_face_version": 1, + "msg_source": 6 + }, + "group_type": 0, + "can_fold": 0, + "status": 0, + "max_seqno": 1236306587877408, + "new_push_msg": 0, + "setting": 0, + "is_guardian": 0, + "is_intercept": 0, + "is_trust": 0, + "system_msg_type": 0, + "live_status": 0, + "biz_msg_unread_count": 0, + "user_label": null + } +} +``` + +
+ ## 私信消息记录 > https://api.vc.bilibili.com/svr_sync/v1/svr_sync/fetch_session_msgs @@ -480,6 +480,8 @@ curl -G 'https://api.vc.bilibili.com/session_svr/v1/session_svr/new_sessions' \ 认证方式:Cookie(SESSDATA) +仅调用该接口不会设置私信为已读,详见[设置私信为已读](#设置私信为已读) + 此接口有设计缺陷,可以获取已经撤回的私信内容 **url参数:** @@ -619,6 +621,71 @@ curl -G 'https://api.vc.bilibili.com/svr_sync/v1/svr_sync/fetch_session_msgs' \ +## 设置私信为已读 + +> https://api.vc.bilibili.com/session_svr/v1/session_svr/update_ack + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +将指定消息及以前的消息设置为已读 + +**正文参数(application/x-www-form-urlencoded):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------ | ---- | ------------------------ | ------ | ---------------------------------------------------- | +| talker_id | num | 聊天对象的id | 必要 | `session_type` 为 `1` 时表示用户 mid,为 `2` 时表示粉丝团 id | +| session_type | num | 聊天对象的类型 | 必要 | 1:用户
2:粉丝团 | +| ack_seqno | num | 设置为已读的消息序列号 | 必要 | | +| csrf_token | str | CSRF Token(位于cookie) | 必要 | | +| csrf | str | CSRF Token(位于cookie) | 必要 | | +| build | num | 客户端内部版本号 | 非必要 | 默认为 `0` | +| mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| msg | str | 错误信息 | 成功时为0 | +| message | str | 错误信息 | 成功时为0 | +| ttl | num | | 默认为1 | +| data | 有效时:obj
无效时:不存在该项 | 信息本体 | | + +`data`对象: + +一个不含任何项目的对象,即 `{}` + +**示例:** + +将`talker_id=293793435`、`session_type=1`的`ack_seqno=1236306587877408`消息及之前的消息设置为已读 + +```shell +curl 'ttps://api.vc.bilibili.com/session_svr/v1/session_svr/update_ack' \ +--data-urlencode 'talker_id=293793435' \ +--data-urlencode 'session_type=1' \ +--data-urlencode 'ack_seqno=1236306587877408' \ +--data-urlencode 'csrf=xxx' \ +--data-urlencode 'csrf_token=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "0", + "message": "0", + "ttl": 1, + "data": {} +} +``` + ## 发送私信(web端) > https://api.vc.bilibili.com/web_im/v1/web_im/send_msg @@ -627,6 +694,8 @@ curl -G 'https://api.vc.bilibili.com/svr_sync/v1/svr_sync/fetch_session_msgs' \ 认证方式:Cookie(SESSDATA) +调用该接口同时会将该会话的最近一条私信设置为已读 + **正文参数(application/x-www-form-urlencoded):** | 参数名 | 类型 | 内容 | 必要性 | 备注 |