CC BY-NC-SA 4.0

javascript
1
2
3
4
5
6
7
8
9
10
11
const API_BASE = 'https://i.weread.qq.com';
const USER_AGENT = 'WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0';

// 通用请求头
const getHeaders = (vid, skey) => ({
'vid': vid.toString(),
'skey': skey,
'User-Agent': USER_AGENT,
'v': '7.4.2.23',
'Content-Type': 'application/json'
});

基础headers

javascript
1
2
3
4
5
{
'vid': vid.toString(),
'skey': skey,
'User-Agent': 'WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0'
}
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 1. 使用 refresh_token 登录
const loginResponse = await fetch(`${API_BASE}/login`, {
method: 'POST',
headers: { 'User-Agent': USER_AGENT },
body: JSON.stringify({
deviceId: '1',
refCgi: '',
refreshToken: 'your_refresh_token'
})
});

const { vid, skey } = await loginResponse.json();

// 2. 使用 vid 和 skey 调用其他 API
const userProfile = await fetch(`${API_BASE}/user/profile`, {
headers: getHeaders(vid, skey)
});

错误码

通用错误码

错误码 常量名 说明
0 SUCCESS 成功
-2001 ErrorUnknown 未知错误
-2002 ErrorUndone 未完成
-2003 ErrorInvalidParam 无效参数
-2014 ErrorOverFreq 请求过于频繁
-2016 ErrorSvrReadOnly 服务器只读模式
-2018 ErrorAppVersionOut 应用版本过期
-2020 ErrorConnFail 连接失败
-2051 ErrorOverLimit 超出限制
-2053 ErrorSensitiveWord 敏感词汇

认证相关错误码

错误码 常量名 说明
-2004 ErrorInvalidVid 无效的用户ID
-2005 ErrorInvalidSkey 无效的会话密钥
-2006 ErrorInvalidOpenid 无效的OpenID
-2010 ErrorNoVid 用户不存在
-2011 ErrorGenSkey 生成会话密钥失败
-2012 ErrorSessionTimeout 登录超时
-2013 ErrorAuth 认证失败
-2017 ErrorVidReadOnly 用户只读模式
-2041 ErrorNeedVerify 需要验证
-2050 ErrorVidBlacked 用户被拉黑
-2054 ErrorInvalidToken 无效的令牌
-2063 ErrorVerExpired 验证过期
-2080 ErrorWeChatComm 微信通信错误
-2081 ErrorWeChatConnect 微信连接错误

用户相关错误码

错误码 常量名 说明
-2026 ErrorAccountSvrFail 账户服务失败
-2060 ErrorNotFriend 不是好友
-2061 ErrorUserInfoFail 获取用户信息失败
-2090 ErrorAntispamComm 反垃圾通信错误
-2704 ErrorUserForbidChat 用户禁止聊天
-2997 ErrorAccountAlreadyDeleted 账户已删除
-2998 ErrorAccountRevoked 账户已撤销

书籍相关错误码

错误码 常量名 说明
-2008 ErrorInvalidBookid 无效的书籍ID
-2024 ErrorBookSvrFail 书籍服务失败
-2030 ErrorNoBook 书籍不存在
-2031 ErrorNoReview 书评不存在
-2032 ErrorNoRate 评分不存在
-2033 ErrorNoBookInfo 书籍信息不存在
-2034 ErrorNoMark 标记不存在
-2035 ErrorNoComment 评论不存在
-2037 ErrorNoBookInventory 书籍库存不足
-2040 ErrorBookLackContent 书籍缺少内容
-2311 ErrorBorrowFreeBook 借阅免费书籍错误
-2312 ErrorBorrowPaid 借阅已付费
-2313 ErrorBorrowNotPaid 借阅未付费
-2314 ErrorBorrowInvalidStatus 借阅状态无效
-2315 ErrorBorrowInvalidData 借阅数据无效
-2316 ErrorBorrowOut 借阅超时
-2317 ErrorBorrowing 正在借阅中
-2531 ErrorBookRunning 书籍处理中
-2533 ErrorInvalidBookInfo 无效的书籍信息
-2534 ErrorNoChapterInData 数据中无章节
-2538 ErrorPreSellBook 预售书籍
-2999 ErrorUploadBookOverLimit 上传书籍超出限制

支付相关错误码

错误码 常量名 说明
-2009 ErrorInvalidPrice 无效价格
-2027 ErrorPaySvrFail 支付服务失败
-2101 ErrorPayKvSelect 支付KV查询失败
-2102 ErrorPayKvInsert 支付KV插入失败
-2103 ErrorPayKvUpdate 支付KV更新失败
-2104 ErrorPayKvParse 支付KV解析失败
-2105 ErrorPayKvDump 支付KV导出失败
-2111 ErrorPayFetchBalance 获取余额失败
-2112 ErrorPayBalanceNotEnough 余额不足
-2113 ErrorPayPayApi 支付API错误
-2114 ErrorPayPresentApi 赠送API错误
-2115 ErrorPayMidasSysErr 米大师系统错误
-2116 ErrorPayMidasLogicErr 米大师逻辑错误
-2117 ErrorPayRollbackSucc 支付回滚成功
-2118 ErrorPayRollbackFail 支付回滚失败
-2119 ErrorPayAppType 支付应用类型错误
-2121 ErrorPayPresentAuth 赠送授权错误
-2123 ErrPayMemberCardNotEnough 会员卡不足
-2201 ErrorPayPayingBook 书籍支付中
-2202 ErrorPayBookPaidAlready 书籍已付费
-2203 ErrorPayBookNotExist 支付书籍不存在
-2204 ErrorPayFetchBookPrice 获取书籍价格失败
-2205 ErrorPayFetchNotEntireBook 获取非完整书籍失败
-2206 ErrorPayFreeBook 支付免费书籍
-2207 ErrorPayLimitFreeBook 限制免费书籍
-2208 ErrorPayNoBillno 无账单号
-2221 ErrorPayChaptersPaying 章节支付中
-2222 ErrorPayChapterIdsNull 章节ID为空
-2223 ErrorPayChapterAutoPayDisable 章节自动支付禁用
-2224 ErrorPayChapterFree 章节免费
-2225 ErrorPayChapterPriceEntireBook 章节价格为整本书
-2226 ErrorPayChapterPriceLack 章节价格不足
-2227 ErrorPayChaptersPartBoughtAlready 章节部分已购买
-2228 ErrorPayChaptersAllBoughtAlready 章节全部已购买
-2229 ErrorPayChaptersAutoPayClosed 章节自动支付关闭
-2281 ErrorPayPriceChanged 价格已变更
-2282 ErrorPayBookNumLimit 书籍数量限制
-2283 ErrorPayChargeNumLimit 充值数量限制
-2284 ErrorPaySoldOut 已售罄
-2285 ErrorPayDuplicated 重复支付
-2288 ErrorPayCollageCard 拼团卡错误
-2290 ErrorCouponUsed 优惠券已使用
-2298 ErrPayMoneyNotSendBook 付费未发书
-2299 ErrorPayUnknown 支付未知错误

书评相关错误码

错误码 常量名 说明
-2301 ErrorReviewUid 书评UID错误
-2302 ErrorReviewNotFound 书评不存在
-2303 ErrorReviewDeleted 书评已删除
-2304 ErrorReviewRefactorFail 书评重构失败
-2305 ErrorReviewFljBlock 书评被屏蔽
-2306 ErrorReviewTooLarge 书评过大
-2307 ErrorReviewInfoCorrupted 书评信息损坏
-2351 ErrorBookmarkUid 书签UID错误
-2352 ErrorBookmarkNotFound 书签不存在

网络相关错误码

错误码 常量名 说明
-2021 ErrorSQLTruncated SQL截断
-2022 ErrorSQLExecFail SQL执行失败
-2023 ErrorStrkvFail 字符串KV失败
-2025 ErrorStoreSvrFail 商店服务失败
-2028 ErrorKvFail KV操作失败
-2029 ErrorOtherSvrFail 其他服务失败
-2500 ErrorRemoteFail 远程调用失败
-2539 ErrorXingeErr 信鸽推送错误

文件操作错误码

错误码 常量名 说明
-2501 ErrorDbOpErr 数据库操作错误
-2502 ErrorParseFail 解析失败
-2503 ErrorArgsMiss 参数缺失
-2504 ErrorTypeErr 类型错误
-2505 ErrorArgsErr 参数错误
-2506 ErrorHttpDownload HTTP下载错误
-2507 ErrorFileNotExist 文件不存在
-2508 ErrorConvert 转换错误
-2509 ErrorDocNotObejct 文档非对象
-2510 ErrorOpenFile 打开文件错误
-2511 ErrorWriteFile 写文件错误
-2512 ErrorUnknownArgs 未知参数
-2513 ErrorLoadFile 加载文件错误
-2514 ErrorFileOutTime 文件超时
-2515 ErrorGetInfo 获取信息错误
-2516 ErrorNotLoadFile 未加载文件
-2517 ErrorNotArray 非数组类型
-2518 ErrorFileContent 文件内容错误
-2519 ErrorStatFileFail 文件状态失败
-2520 ErrorChapSzNotMatch 章节大小不匹配
-2521 ErrorDBNoUpdate 数据库无更新
-2522 ErrorUnknow 未知错误
-2523 ErrorkvTypeErr KV类型错误
-2524 ErrorEpubDownloadErr EPUB下载错误
-2525 ErrorParseCss CSS解析错误
-2526 ErrorZipOp ZIP操作错误
-2527 ErrorHTMLOP HTML操作错误
-2528 ErrorParseXML XML解析错误
-2529 ErrorPosTrans 位置转换错误
-2530 ErrorUidNotFound UID未找到
-2532 ErrorSerilizeStr 序列化字符串错误
-2535 ErrorCheckLevel 检查级别错误
-2536 ErrorNoUpdate 无更新
-2537 ErrorSetColumnFail 设置列失败
-2540 ErrorPosConvertErr 位置转换错误
-2541 ErrorHTMLToTextErr HTML转文本错误
-2542 ErrorGetAbstractErr 获取摘要错误
-2062 ErrorZipFail ZIP失败

特殊功能错误码

错误码 常量名 说明
-2015 ErrorPwd 密码错误
-2600 ErrorForgetSendMail 忘记发送邮件
-2601 ErrorCheckTokenFail 检查令牌失败
-2602 ErrorEmailFormat 邮件格式错误
-2603 ErrorEmail 邮件错误
-2650 ErrorInvalidAssistCount 无效助力次数
-2651 ErrorInvalidPromoBook 无效推广书籍
-2652 ErrorInvalidSelfAssist 无效自助
-2653 ErrorLimitCount 限制次数
-2654 ErrorGenerateGiftErr 生成礼品错误
-2655 ErrorSelfReceive 自己接收
-2656 ErrorActivityEnd 活动结束
-2657 ErrorGiftBagReceived 礼品袋已接收
-2666 ErrorLimitFreeNoQualified 限免无资格
-2700 ErrorMissImg 缺少图片
-2701 ErrorReject 拒绝
-2801 ErrorArticleLockOccupied 文章锁定被占用
-2809 ErrorArticleReleaseAgain 文章重复发布
-2810 ErrorArticleNoArticle 无文章
-2880 ErrorReadFundAlreadyObtained 阅读基金已获得
-2910 ErrorArticleQRScanLoginTimeOut 文章二维码扫描登录超时
-2924 ErrorTeenRestrict 青少年限制
-2958 ErrorMPArticleDeleted 公众号文章已删除
-2992 ErrorCollageExpired 拼团过期

认证与登录 API

微信读书的认证和登录相关 API 接口,包括多种登录方式和二维码登录。

刷新令牌登录

POST https://i.weread.qq.com/login (刷新令牌)

使用刷新令牌进行登录,这是最常用的登录方式。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"refreshToken": "your_refresh_token",
"deviceId": "device_id_here",
"wxToken": null, // 微信令牌,可选
"inBackground": 0, // 是否后台登录
"trackId": "track_id_here", // 跟踪ID
"kickType": 0, // 踢出类型
"refCgi": "", // 引用CGI
"timestamp": 1640995200, // 时间戳
"random": 12345, // 随机数
"signature": "signature_string", // 签名
"virtualChannelId": "channel_id", // 虚拟渠道ID
"deviceName": "device_name" // 设备名称
}

请求头:

javascript
1
2
3
4
{
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0",
"Content-Type": "application/json"
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"errcode": 0,
"data": {
"vid": 12345,
"skey": "your_skey_here",
"accessToken": "access_token_here",
"refreshToken": "new_refresh_token",
"user": {
"name": "用户昵称",
"avatar": "头像URL",
"gender": 1
},
"expireTime": 1641599999
}
}

微信登录

POST https://i.weread.qq.com/login (微信登录)

使用微信授权码进行登录。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"code": "wx_auth_code", // 微信授权码
"deviceId": "device_id_here",
"trackId": "track_id_here",
"timestamp": 1640995200,
"random": 12345,
"signature": "signature_string",
"wxToken": 1, // 微信令牌标识
"appFirstInstall": 0, // 是否首次安装
"virtualChannelId": "channel_id",
"installId": "install_id_here",
"isFromQrcode": 0, // 是否来自二维码
"isAutoLogout": 0, // 是否自动登出
"deviceName": "device_name",
"deviceType": 1 // 设备类型
}

访客登录

POST https://i.weread.qq.com/guestLogin

创建访客账户。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
{
"deviceId": "device_id_here",
"newDeviceId": null, // 新设备ID,可选
"timestamp": 1640995200,
"random": 12345,
"signature": "signature_string",
"appFirstInstall": 1, // 首次安装标识
"virtualChannelId": "channel_id",
"installId": "install_id_here"
}

POST https://i.weread.qq.com/login (访客转正式登录)

将访客账户转换为正式账户。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"code": "auth_code",
"deviceId": "device_id_here",
"trackId": "track_id_here",
"guestVid": 12345, // 访客VID
"guestAccessToken": "guest_token", // 访客访问令牌
"pf": "platform_identifier", // 平台标识
"timestamp": 1640995200,
"random": 12345,
"signature": "signature_string",
"appFirstInstall": 0,
"virtualChannelId": "channel_id",
"installId": "install_id_here",
"isFromQrcode": 0,
"isAutoLogout": 0,
"deviceName": "device_name",
"deviceType": 1
}

二维码登录

POST https://i.weread.qq.com/web/qrlogin

使用二维码进行网页登录。

请求参数:

javascript
1
2
3
4
5
{
"uid": "qr_uid_here", // 二维码UID
"url": "callback_url", // 回调URL
"pf": 1 // 平台标识
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
{
"errcode": 0,
"data": {
"qrCode": "https://weread.qq.com/qr/abc123",
"qrCodeId": "abc123",
"expireTime": 300, // 过期时间(秒)
"status": "waiting" // waiting, scanned, confirmed, expired
}
}

微信票据相关

GET /wx/jsapiticket

获取微信 JS API 票据。

请求参数 (Query):

javascript
1
2
3
{
"vid": "user_vid_here"
}

GET /wxticket

获取微信票据。

请求参数 (Query):

javascript
1
2
3
{
"nonceStr": "random_nonce_string"
}

设备登出

POST https://i.weread.qq.com/device/logout

登出指定设备,结束设备会话。

请求参数:

javascript
1
2
3
4
5
6
{
"deviceId": "device_id_here", // 设备ID
"timestamp": 1640995200, // 时间戳
"random": 12345, // 随机数
"signature": "signature_string" // 签名
}

请求头:

javascript
1
2
3
4
5
6
{
"vid": "12345",
"skey": "your_skey",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0",
"Content-Type": "application/json"
}

响应示例:

javascript
1
2
3
4
{
"errcode": 0,
"errmsg": "success"
}

应用服务 API

微信读书应用服务相关的 API 接口,包括日志报告、数据同步、知识检索等功能。

日志报告 API

POST https://i.weread.qq.com/logReport

用于上报各种日志数据,支持多种数据格式。

方式一:字符串数据报告

请求参数:

javascript
1
2
3
{
"data": "log_data_string" // 日志数据字符串
}

请求头:

javascript
1
2
3
4
5
6
{
"vid": "12345",
"skey": "your_skey",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0",
"Content-Type": "application/json"
}

响应示例:

javascript
1
2
3
4
{
"errcode": 0,
"success": true
}

方式二:对象数据报告

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
{
"data": {
"action": "page_view",
"page": "book_detail",
"bookId": "123456",
"timestamp": 1640995200,
"duration": 30,
"userAgent": "WeRead/7.0.0"
}
}

方式三:离线数据报告

用于离线状态下的数据上报。

请求头:

javascript
1
2
3
4
5
6
7
{
"vid": "12345",
"skey": "your_skey",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0",
"Content-Type": "application/json",
"offline": "1" // 离线标识
}

移动同步 API

POST https://i.weread.qq.com/mobileSync

同步移动端的各种数据,包括书架、通知、配置等。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{
"shelf": 123456789, // 书架同步键
"inventory": 123456789, // 库存同步键
"shelfLecture": 123456789, // 书架讲座同步键
"notifications": 123456789, // 通知同步键
"config": 123456789, // 配置同步键
"gift": 123456789, // 礼品同步键
"payItem": 123456789, // 付费项目同步键
"balance": 100.50, // 余额
"reviewTimeline": 123456789, // 书评时间线同步键
"follower": 123456789, // 粉丝同步键
"readingExchange": 1, // 阅读兑换
"chat": 123456789, // 聊天同步键
"chatRemovedSynckey": 123456789, // 聊天删除同步键
"wechatFriend": 123456789, // 微信好友同步键
"inBackground": 0, // 后台状态
"refluxSynckey": 123456789, // 回流同步键
"following": 123456789, // 关注同步键
"applyList": 123456789, // 申请列表同步键
"mcard": 123456789, // 会员卡同步键
"discoverFeedSynckey": 123456789, // 发现信息流同步键
"rateSynckey": 123456789, // 评分同步键
"browse": 123456789, // 浏览同步键
"medal": 123456789, // 勋章同步键
"medalUrl": 123456789, // 勋章URL同步键
"regionResource": 123456789, // 地区资源同步键
"discoverColumnSynckey": 123456789, // 发现栏目同步键
"friendReviewSynckey": 123456789, // 好友书评同步键
"wehearSyncKey": 123456789, // WeHear同步键
"preferTab": 1, // 偏好标签
"localBrowseTab": "recommend", // 本地浏览标签
"localCommunityTab": "following" // 本地社区标签
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{
"errcode": 0,
"data": {
"shelf": {
"synckey": 123456790,
"books": [
{
"bookId": "123456",
"title": "书名",
"author": "作者",
"progress": 0.5,
"updateTime": 1640995200
}
]
},
"notifications": {
"synckey": 123456790,
"items": [
{
"id": "notif_1",
"type": "system",
"title": "系统通知",
"content": "通知内容",
"timestamp": 1640995200
}
]
},
"config": {
"synckey": 123456790,
"settings": {
"theme": "light",
"fontSize": 16,
"autoSync": true
}
}
}
}

知识检索 API

POST https://i.weread.qq.com/knowledge/retrieval

在指定书籍中检索知识内容。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
{
"bookId": "book_id_here", // 书籍ID
"query": "search_query", // 搜索查询
"scene": 1, // 场景ID
"v": 1, // 版本
"queryContext": { // 查询上下文(可选)
"chapterId": "chapter_1",
"pageNumber": 10,
"previousQuery": "previous_search"
}
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"errcode": 0,
"data": {
"results": [
{
"chapterId": "chapter_1",
"chapterTitle": "第一章",
"content": "匹配的内容片段...",
"pageNumber": 15,
"relevanceScore": 0.95,
"highlights": [
{
"start": 10,
"end": 20,
"text": "关键词"
}
]
}
],
"totalCount": 5,
"queryTime": 150,
"suggestions": ["相关搜索1", "相关搜索2"]
}
}

在线时间统计

POST https://i.weread.qq.com/app/onlinetime

报告用户的在线时间。

请求参数:

javascript
1
2
3
{
"time": 300 // 在线时间(秒)
}

推送配置 API

绑定推送令牌

POST https://i.weread.qq.com/updateConfig

绑定设备的推送令牌。

请求参数:

javascript
1
2
3
4
5
{
"deviceToken": "device_token_string", // 设备令牌
"bundleId": "com.tencent.weread", // 应用包ID
"deviceId": "device_id_string" // 设备ID
}

开启推送令牌

POST https://i.weread.qq.com/updateConfig

开启设备的推送功能。

请求参数:

javascript
1
2
3
4
5
{
"openDeviceToken": "device_token_string", // 开启设备令牌
"bundleId": "com.tencent.weread", // 应用包ID
"deviceId": "device_id_string" // 设备ID
}

关闭推送令牌

POST https://i.weread.qq.com/updateConfig

关闭设备的推送功能。

请求参数:

javascript
1
2
3
4
5
{
"closeDeviceToken": "device_token_string", // 关闭设备令牌
"bundleId": "com.tencent.weread", // 应用包ID
"deviceId": "device_id_string" // 设备ID
}

解绑推送令牌

POST https://i.weread.qq.com/updateConfig

解绑设备的推送令牌。

请求参数:

javascript
1
2
3
4
5
{
"disDeviceToken": "device_token_string", // 解绑设备令牌
"bundleId": "com.tencent.weread", // 应用包ID
"deviceId": "device_id_string" // 设备ID
}

解绑Hub令牌

POST https://i.weread.qq.com/updateConfig

解绑Hub推送令牌。

请求参数:

javascript
1
2
3
4
{
"disHubToken": 123456789, // 解绑Hub令牌
"deviceId": "device_id_string" // 设备ID
}

上传新Gap令牌

POST https://i.weread.qq.com/updateConfig

上传新的Gap推送令牌。

请求参数:

javascript
1
2
3
4
{
"gapToken": 123456789, // Gap令牌
"deviceId": "device_id_string" // 设备ID
}

报告服务 API

上报数据到OSS

POST https://oss.weread.qq.com/wrbus/report/oss

向OSS(对象存储服务)上报数据。

请求参数:

javascript
1
2
3
{
"content": "report_content_string" // 报告内容
}

响应示例:

javascript
1
2
3
4
5
6
{
"errcode": 0,
"success": true,
"reportId": "report_123456",
"timestamp": 1640995200000
}

应用日志报告

POST https://i.weread.qq.com/logReport

向服务器报告应用日志数据。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
{
"deviceId": "device_123456", // 设备ID
"reportMethod": 1, // 报告方法
"os": "Android", // 操作系统
"appver": "7.0.0", // 应用版本
"data": "log_data_string", // 日志数据
"vid": "user_789012", // 用户VID
"model": "Huawei P40" // 设备型号
}

响应示例:

javascript
1
2
3
4
5
6
7
{
"errcode": 0,
"success": true,
"reportId": "log_report_123456",
"timestamp": 1640995200000,
"processed": true
}

日志报告工具类

OSS 服务 API

OSS 日志上传

POST https://i.weread.qq.com/cgi-bin/oss_log

向 OSS(对象存储服务)上传日志数据。

请求参数 (Query):

javascript
1
2
3
4
{
"inputf": "log_format", // 输入格式
"func": "upload_function" // 上传功能
}

请求体参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"baseinfo": { // 基础信息
"deviceId": "device_123456",
"appVersion": "7.0.0",
"osVersion": "Android 11",
"deviceModel": "Huawei P40",
"userId": "user_789012",
"sessionId": "session_345678",
"timestamp": 1640995200000,
"timezone": "Asia/Shanghai",
"networkType": "wifi",
"batteryLevel": 85,
"memoryUsage": 512,
"storageUsage": 1024
},
"logsize": 2048, // 日志大小(字节)
"logcontent": "compressed_log_data" // 压缩后的日志内容
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"errcode": 0,
"data": {
"uploadId": "upload_123456789",
"ossUrl": "https://oss.weread.qq.com/logs/upload_123456789.log",
"uploadTime": 1640995200000,
"fileSize": 2048,
"checksum": "md5_hash_string",
"status": "uploaded",
"retention": {
"days": 30,
"deleteTime": 1643587200000
}
}
}

AI 聊天 API

微信读书的 AI 聊天功能相关 API 接口。

获取 AI HTML

POST https://i.weread.qq.com/ai/wink/proxy

获取 AI 聊天的 HTML 内容,这是一个代理接口,用于获取 AI 聊天界面。

请求头:

javascript
1
2
3
4
5
6
{
"vid": "12345",
"skey": "your_skey",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0",
"Content-Type": "application/json"
}

请求参数:

javascript
1
2
3
4
{
// 具体参数需要根据实际需求传递
// 可能包括聊天上下文、用户偏好等
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
{
"errcode": 0,
"data": {
"html": "<div class='ai-chat-container'>...</div>",
"css": ".ai-chat-container { ... }",
"js": "function initAiChat() { ... }",
"config": {
"apiEndpoint": "https://ai.weread.qq.com/chat",
"wsEndpoint": "wss://ai.weread.qq.com/ws",
"features": ["text", "voice", "image"]
}
}
}

书籍 API

书籍相关的 API 接口,包括阅读状态管理、章节操作等。

标记阅读状态

POST https://i.weread.qq.com/book/markstatus

标记书籍的阅读状态,支持在读、读过、读完等状态。

阅读状态枚举:

javascript
1
2
3
4
5
const ReadingStatus = {
READING: 2, // 在读
READED: 3, // 读过
FINISHED: 4 // 读完
};

请求参数:

javascript
1
2
3
4
5
6
{
"status": 2, // 阅读状态 (ReadingStatus)
"bookId": "book_id", // 书籍ID
"isCancel": 0, // 是否取消标记 (0: 标记, 1: 取消)
"finishInfo": 0 // 完成信息
}

请求头:

javascript
1
2
3
4
5
6
7
{
"vid": "12345",
"skey": "your_skey",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0",
"v": "7.4.2.23",
"Content-Type": "application/json"
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
{
"errcode": 0,
"errmsg": "success",
"data": {
"bookId": "book_id",
"status": 2,
"updateTime": 1640995200
}
}

获取章节信息

POST https://i.weread.qq.com/book/chapterInfos

获取指定书籍的章节信息列表。

请求参数:

javascript
1
2
3
4
{
"bookIds": ["book_id1", "book_id2"], // 书籍ID数组
"synckeys": [0, 0] // 同步键数组
}

请求头:

javascript
1
2
3
4
5
6
7
{
"vid": "12345",
"skey": "your_skey",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0",
"v": "7.4.2.23",
"Content-Type": "application/json"
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"errcode": 0,
"data": {
"book_id": {
"chapters": [
{
"chapterUid": 1,
"title": "第一章",
"level": 1,
"wordCount": 2500,
"readingTime": 300
},
{
"chapterUid": 2,
"title": "第二章",
"level": 1,
"wordCount": 3000,
"readingTime": 360
}
],
"synckey": 123456789
}
}
}

下载章节内容

GET /book/chapterdownload

下载书籍章节的具体内容。

请求参数 (Query):

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"bookId": "3300071749", // 书籍ID
"bookType": "epub", // 书籍类型
"bookVersion": "462704133", // 书籍版本
"chapters": "311-320", // 章节范围
"modernVersion": "7.4.2.23", // 现代版本
"offline": 1, // 离线标识
"pf": "weread_wx-2001-iap-2001-iphone", // 平台标识
"pfkey": "pfkey", // 平台密钥
"release": 1, // 发布标识
"screenSize": "16x9", // 屏幕尺寸
"synckey": "462704133", // 同步键
"zoneId": 1 // 区域ID
}

黑名单管理

拉黑/取消拉黑书籍

GET /blacklist/books

将书籍加入黑名单或从黑名单移除。

请求参数 (Query):

javascript
1
2
3
4
5
{
"bookId": "book_id_here", // 书籍ID
"vid": 12345, // 用户VID
"cancelBlack": 0 // 0: 拉黑, 1: 取消拉黑
}

请求头:

javascript
1
2
3
4
5
{
"vid": "12345",
"skey": "your_skey",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0"
}

响应示例:

javascript
1
2
3
4
{
"errcode": 0,
"success": true
}

书籍详情与报告 API

微信读书书籍详情和阅读报告相关的 API 接口,包括播客、分享图片、阅读进度报告等功能。

书籍详情 API

加载书籍播客

GET /book/podcasts

获取书籍相关的播客内容列表。

请求参数 (Query):

javascript
1
2
3
4
5
6
7
{
"bookId": "book_id_here", // 书籍ID
"synckey": 123456789, // 同步键
"count": 20, // 返回数量
"listType": 1, // 列表类型
"reviewListType": 1 // 书评列表类型
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"errcode": 0,
"data": {
"podcasts": [
{
"id": "podcast_1",
"title": "第一章解读",
"description": "深度解读第一章内容",
"duration": 1800, // 时长(秒)
"audioUrl": "https://example.com/audio1.mp3",
"coverUrl": "https://example.com/cover1.jpg",
"author": "解读者姓名",
"publishTime": 1640995200,
"playCount": 1000,
"likeCount": 50
}
],
"synckey": 123456790,
"hasMore": true,
"totalCount": 100
}
}

生成分享图片

POST https://weread.qq.com/shareimage/generate

生成书籍分享用的图片。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"templateId": "template_id_here", // 模板ID
"cacheKey": "cache_key_here", // 缓存键
"replacements": { // 替换内容
"bookTitle": "书籍标题",
"bookAuthor": "作者姓名",
"bookCover": "封面URL",
"userAvatar": "用户头像URL",
"userName": "用户昵称",
"readingProgress": "已读 50%",
"readingTime": "阅读时长 2小时",
"quote": "精彩摘录内容"
},
"prefersBinary": 1 // 是否偏好二进制格式
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
{
"errcode": 0,
"data": {
"imageUrl": "https://weread.qq.com/shareimage/abc123.jpg",
"imageData": "base64_encoded_image_data",
"width": 750,
"height": 1334,
"format": "jpeg",
"size": 102400,
"cacheKey": "cache_key_here",
"expireTime": 1641081600
}
}

阅读报告 API

书架内书籍阅读报告

POST https://i.weread.qq.com/book/read

报告书架内书籍的阅读数据。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
"bookId": "book_id_here", // 书籍ID
"chapterUid": 1, // 章节UID
"chapterIdx": 0, // 章节索引
"reviewId": "review_id_here", // 书评ID
"chapterOffset": 1000, // 章节偏移
"chapterProgress": 50, // 章节进度(百分比)
"readingTime": 1800, // 阅读时长(秒)
"ttsTime": 0, // TTS时长
"lectureTime": 0, // 讲座时长
"lectureTextTime": 0, // 讲座文本时长
"novalTime": 0, // 小说时长
"appId": "app_id_here", // 应用ID
"installId": "install_id_here", // 安装ID
"bookVersion": 1, // 书籍版本
"summary": "阅读摘要", // 阅读摘要
"isLecture": 0, // 是否为讲座
"voiceType": 0, // 语音类型
"timestamp": 1640995200, // 时间戳
"random": 12345, // 随机数
"signature": "signature_string", // 签名
"autoTime": 0, // 自动时长
"isStoryFeed": 0, // 是否为故事流
"wordCount": 2500, // 字数
"curType": "reading", // 当前类型
"hours": [ // 小时数据
{
"hour": 14,
"readingTime": 1800
}
],
"deviceId": "device_id_here", // 设备ID
"risk": 0, // 风险等级
"recordCreateTimeZone": "+08:00" // 记录创建时区
}

非书架书籍阅读报告

POST https://i.weread.qq.com/book/read

报告非书架书籍的阅读数据(参数较少)。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
"bookId": "book_id_here", // 书籍ID
"reviewId": "review_id_here", // 书评ID
"readingTime": 1800, // 阅读时长(秒)
"ttsTime": 0, // TTS时长
"lectureTime": 0, // 讲座时长
"lectureTextTime": 0, // 讲座文本时长
"novalTime": 0, // 小说时长
"voiceType": 0, // 语音类型
"timestamp": 1640995200, // 时间戳
"random": 12345, // 随机数
"signature": "signature_string", // 签名
"autoTime": 0, // 自动时长
"chapterProgress": 50, // 章节进度
"wordCount": 2500, // 字数
"hours": [], // 小时数据
"deviceId": "device_id_here", // 设备ID
"risk": 0, // 风险等级
"appId": "app_id_here", // 应用ID
"recordCreateTimeZone": "+08:00" // 记录创建时区
}

标记阅读状态

POST https://i.weread.qq.com/book/markstatus

标记书籍的阅读状态。

请求参数:

javascript
1
2
3
4
5
{
"status": 2, // 阅读状态
"isCancel": 0, // 是否取消标记
"bookIds": ["book1", "book2"] // 书籍ID数组(可选)
}

进度上传 API

上传 TTS 进度

POST https://i.weread.qq.com/book/uploadProgress

上传文本转语音的播放进度。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
{
"bookId": "book_id_here", // 书籍ID
"tts": { // TTS进度信息
"chapterUid": 1,
"progress": 0.5,
"position": 1000,
"duration": 2000,
"speed": 1.0,
"voice": "female"
}
}

批量上传进度

POST https://i.weread.qq.com/book/batchUploadProgress

批量上传多本书籍的阅读进度。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"books": [ // 书籍进度数组
{
"bookId": "book1",
"chapterUid": 1,
"progress": 0.5,
"readingTime": 1800
},
{
"bookId": "book2",
"chapterUid": 2,
"progress": 0.3,
"readingTime": 1200
}
],
"timestamp": 1640995200, // 时间戳
"random": 12345, // 随机数
"signature": "signature_string", // 签名
"recordCreateTimeZone": "+08:00" // 记录创建时区
}

书籍搜索 API

微信读书书籍搜索相关的 API 接口,包括基础搜索、高级搜索、书店搜索等功能。

基础搜索 API

书店综合搜索

在书店中进行综合搜索。

请求参数 (Query):

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"keyword": "人工智能", // 搜索关键词
"author": "作者名", // 作者名称
"authorVids": "123,456", // 作者VID列表
"categoryId": "tech", // 分类ID
"count": 20, // 获取数量(可选)
"maxIdx": 100, // 最大索引(可选)
"type": 1, // 搜索类型(可选)
"v": 2, // 版本(可选)
"outer": 0, // 外部标识
"fromBookId": "book_123", // 来源书籍ID
"scope": 1, // 搜索范围
"scene": 1, // 搜索场景
"filterType": 0, // 过滤类型
"filterField": "all", // 过滤字段
"queryUid": "query_456", // 查询UID
"isQueryWord": 1 // 是否查询词
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
{
"errcode": 0,
"data": {
"books": [
{
"bookId": "book_123456",
"title": "人工智能简史",
"author": "张三",
"cover": "https://example.com/cover1.jpg",
"isbn": "9787111234567",
"publisher": "机械工业出版社",
"publishTime": "2023-01-15",
"category": {
"categoryId": "tech",
"name": "科技",
"subCategory": "人工智能"
},
"rating": {
"score": 4.5,
"count": 1250,
"distribution": {
"5": 650,
"4": 400,
"3": 150,
"2": 30,
"1": 20
}
},
"price": {
"original": 59.0,
"current": 29.5,
"discount": 0.5,
"currency": "CNY"
},
"stats": {
"readCount": 15600,
"reviewCount": 89,
"noteCount": 234,
"wordCount": 180000
},
"tags": ["人工智能", "科技", "入门"],
"description": "深入浅出地介绍人工智能的发展历程和核心技术...",
"availability": {
"isAvailable": true,
"isFree": false,
"hasTrialReading": true,
"trialChapters": 3
}
}
],
"authors": [
{
"authorVid": "author_789",
"name": "张三",
"avatar": "https://example.com/author_avatar.jpg",
"description": "人工智能领域专家",
"bookCount": 5,
"followerCount": 2580,
"tags": ["AI专家", "教授"]
}
],
"categories": [
{
"categoryId": "tech",
"name": "科技",
"bookCount": 1250,
"subCategories": [
{
"categoryId": "ai",
"name": "人工智能",
"bookCount": 156
}
]
}
],
"searchStats": {
"totalCount": 1250,
"searchTime": 0.15,
"hasMore": true,
"nextMaxIdx": 120
},
"suggestions": [
"人工智能入门",
"机器学习",
"深度学习"
]
}
}

按标题搜索书籍

POST https://i.weread.qq.com/store/titlesearch

通过书籍标题进行精确搜索。

请求参数:

javascript
1
2
3
4
5
6
7
{
"keywords": [ // 关键词列表
"人工智能简史",
"机器学习实战",
"深度学习"
]
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{
"errcode": 0,
"data": {
"books": [
{
"bookId": "book_123456",
"title": "人工智能简史",
"author": "张三",
"cover": "https://example.com/cover1.jpg",
"isbn": "9787111234567",
"matchScore": 0.95, // 匹配度评分
"matchType": "exact_title", // 匹配类型
"highlightTitle": "<em>人工智能简史</em>", // 高亮标题
"publisher": "机械工业出版社",
"publishTime": "2023-01-15",
"rating": {
"score": 4.5,
"count": 1250
},
"price": {
"current": 29.5,
"currency": "CNY"
},
"availability": {
"isAvailable": true,
"isFree": false
}
}
],
"searchStats": {
"totalMatches": 3,
"exactMatches": 2,
"partialMatches": 1,
"searchTime": 0.08
},
"unmatchedKeywords": [
"不存在的书名"
]
}
}

书籍服务 API

微信读书书籍服务相关的 API 接口,包括书籍信息、AI 功能、搜索、订阅等。

书籍信息 API

获取单本书籍信息

GET /book/info

获取指定书籍的详细信息。

请求参数 (Query):

javascript
1
2
3
4
5
6
{
"bookId": "book_id_here", // 书籍ID
"teenmode": 0, // 青少年模式 (0: 关闭, 1: 开启)
"myzy": 0, // 可选参数
"source": "source_name" // 来源
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"errcode": 0,
"data": {
"bookId": "123456",
"title": "书籍标题",
"author": "作者姓名",
"cover": "https://example.com/cover.jpg",
"intro": "书籍简介",
"category": "科技",
"publishTime": 1640995200,
"wordCount": 200000,
"chapterCount": 20,
"price": 29.99,
"rating": 4.5,
"ratingCount": 1000,
"tags": ["人工智能", "科技"],
"publisher": "出版社名称"
}
}

批量获取书籍信息

POST https://i.weread.qq.com/book/infos

批量获取多本书籍的信息。

请求参数:

javascript
1
2
3
4
{
"bookIds": ["book1", "book2", "book3"], // 书籍ID数组
"teenmode": 0 // 青少年模式
}

获取书籍更新信息

POST https://i.weread.qq.com/book/lastchapteridx

检查书籍是否有更新。

请求参数:

javascript
1
2
3
4
5
{
"bookIds": ["book1", "book2"], // 书籍ID数组
"lastChapterIdxs": [10, 15], // 最后章节索引数组
"synckeys": [123456789, 123456790] // 同步键数组
}

书籍详细信息

获取书籍页脚

获取书籍页面的页脚信息,包括版权、出版信息等。

请求参数 (Query):

javascript
1
2
3
{
"bookId": "book_id_here" // 书籍ID
}

请求头:

javascript
1
2
3
4
5
{
"vid": "12345",
"skey": "your_skey",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0"
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
{
"errcode": 0,
"data": {
"copyright": "© 2023 出版社名称",
"isbn": "978-7-111-12345-6",
"publishDate": "2023年1月",
"publisher": "机械工业出版社",
"edition": "第1版",
"printDate": "2023年1月第1次印刷",
"legalNotice": "版权所有,侵权必究"
}
}

获取书籍付费时间

GET /book/paytime

获取书籍的付费时间信息,支持批量查询。

请求参数 (Query):

javascript
1
2
3
{
"bookIds": "book1,book2,book3" // 书籍ID列表(逗号分隔)
}

请求头:

javascript
1
2
3
4
5
{
"vid": "12345",
"skey": "your_skey",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0"
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
"errcode": 0,
"data": {
"payTimes": {
"book1": {
"payTime": 1640995200,
"payMethod": "wechat_pay",
"amount": 29.99,
"currency": "CNY"
},
"book2": {
"payTime": 1641081600,
"payMethod": "alipay",
"amount": 19.99,
"currency": "CNY"
},
"book3": {
"payTime": null,
"isFree": true
}
}
}
}

AI 功能 API

AI 内容生成

POST https://i.weread.qq.com/ai/readbook

使用 AI 生成书籍相关内容,如要点总结、实体词等。

请求参数:

javascript
1
2
3
4
5
{
"bookId": "book_id_here", // 书籍ID
"chapterUids": [1, 2, 3], // 章节UID数组
"reqType": "keyPoint" // 请求类型: keyPoint, keyWordRange
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"errcode": 0,
"data": {
"keyPoints": [
{
"chapterUid": 1,
"points": [
"要点1:人工智能的定义",
"要点2:机器学习的基本概念",
"要点3:深度学习的应用"
]
}
],
"summary": "本章主要介绍了人工智能的基础概念..."
}
}

AI 索引生成

POST https://i.weread.qq.com/ai/readbook

生成书籍的 AI 索引。

请求参数:

javascript
1
2
3
4
5
{
"bookId": "book_id_here", // 书籍ID
"reqType": "keyPoint", // 请求类型
"needChapterInfos": true // 是否需要章节信息
}

实体词提取

POST https://i.weread.qq.com/ai/readbook

提取书籍章节中的实体词。

请求参数:

javascript
1
2
3
4
5
{
"bookId": "book_id_here", // 书籍ID
"chapterUids": [1, 2, 3], // 章节UID数组
"reqType": "keyWordRange" // 请求类型
}

知识检索

POST https://i.weread.qq.com/knowledge/retrieval

在书籍中检索相关知识。

请求参数:

javascript
1
2
3
4
5
6
7
{
"book_id": "book_id_here", // 书籍ID
"query": "search_query", // 搜索查询
"question_recall": true, // 是否问题召回
"scene": 1, // 场景ID
"count": 10 // 返回数量
}

搜索功能 API

内容搜索

在书籍内容中搜索关键词。

请求参数 (Query):

javascript
1
2
3
4
5
6
7
8
9
10
{
"bookId": "book_id_here", // 书籍ID
"keyword": "search_keyword", // 搜索关键词
"mode": "search_mode", // 搜索模式
"chapterUid": 1, // 章节UID(可选)
"posBegin": 0, // 开始位置(可选)
"posEnd": 100, // 结束位置(可选)
"v": 2, // 版本
"count": 10 // 返回数量
}

内容定位

POST https://i.weread.qq.com/book/locate

定位书籍中的特定文本内容。

请求参数:

javascript
1
2
3
4
5
6
{
"bookId": "book_id_here", // 书籍ID
"chapterUid": 1, // 章节UID(可选)
"text": "target_text", // 目标文本
"matchWords": ["word1", "word2"] // 匹配词数组
}

书籍请求 API

请求添加书籍

POST https://i.weread.qq.com/book/notfound

报告书籍未找到,请求平台添加该书籍。

请求参数:

javascript
1
2
3
4
5
6
7
{
"globalId": "global_id_here", // 全局ID
"title": "book_title", // 书籍标题
"author": "author_name", // 作者姓名
"addReview": 1, // 是否添加书评(可选)
"bookCover": "cover_url" // 书籍封面URL(可选)
}

音频功能 API

获取音频 URL

GET /audio/geturl

获取音频资源的播放 URL。

请求参数 (Query):

javascript
1
2
3
4
5
6
{
"audioId": "audio_id_here", // 音频ID
"reviewId": "review_id_here", // 书评ID
"type": 1, // 类型
"quality": 1 // 音质
}

上传音频

POST https://i.weread.qq.com/audio/apply

申请上传音频文件。

请求参数:

javascript
1
2
3
4
5
6
7
{
"md5": "file_md5_hash", // 文件MD5哈希
"sha": "file_sha_hash", // 文件SHA哈希
"datalen": 1024000, // 数据长度
"filetype": "mp3", // 文件类型
"addrtype": 1 // 地址类型
}

书籍分享 API

分享到发现页

POST https://i.weread.qq.com/book/shareToDiscover

将书籍分享到发现页面,让其他用户可以发现和阅读。

请求参数:

javascript
1
2
3
4
5
6
7
8
{
"bookId": "book_id_here", // 书籍ID
"isLecture": 0, // 是否为讲座 (0: 否, 1: 是)
"lectureVid": 0, // 讲座VID(当isLecture为1时使用)
"isUnshare": 0, // 是否取消分享 (0: 分享, 1: 取消分享)
"shareText": "推荐理由", // 分享文本(可选)
"tags": ["标签1", "标签2"] // 分享标签(可选)
}

请求头:

javascript
1
2
3
4
5
6
{
"vid": "12345",
"skey": "your_skey",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0",
"Content-Type": "application/json"
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
{
"errcode": 0,
"data": {
"success": true,
"shareId": "share_123456",
"shareUrl": "https://weread.qq.com/share/123456",
"message": "分享成功"
}
}

订阅管理

订阅作者

POST https://i.weread.qq.com/subscription/operation

订阅或取消订阅作者,获取作者的最新作品推送。

请求参数:

javascript
1
2
3
4
5
6
7
8
{
"type": 1, // 订阅类型 (1: 作者订阅)
"isUnSubscribe": 0, // 是否取消订阅 (0: 订阅, 1: 取消订阅)
"authorNames": ["作者1", "作者2"], // 作者姓名数组
"authorIds": ["id1", "id2"], // 作者ID数组
"fromBookIds": ["book1", "book2"], // 来源书籍ID数组
"cpName": ["出版社1", "出版社2"] // 出版社名称数组
}

请求头:

javascript
1
2
3
4
5
6
{
"vid": "12345",
"skey": "your_skey",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0",
"Content-Type": "application/json"
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
{
"errcode": 0,
"data": {
"success": true,
"subscribed": ["作者1", "作者2"],
"failed": [],
"message": "订阅成功"
}
}

取消书籍订阅

POST https://i.weread.qq.com/subscription/cancel

取消对特定书籍的订阅通知。

请求参数:

javascript
1
2
3
{
"bookIds": ["book1", "book2", "book3"] // 要取消订阅的书籍ID数组
}

请求头:

javascript
1
2
3
4
5
6
{
"vid": "12345",
"skey": "your_skey",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0",
"Content-Type": "application/json"
}

响应示例:

javascript
1
2
3
4
5
6
7
8
{
"errcode": 0,
"data": {
"success": true,
"cancelledBooks": ["book1", "book2", "book3"],
"message": "取消订阅成功"
}
}

获取订阅状态

GET /shelf/uncertifiedopus

获取作者订阅状态信息和相关作品。

请求参数 (Query):

javascript
1
2
3
4
5
6
7
8
9
10
{
"bookId": "book_id_here", // 书籍ID
"userVid": "user_vid_here", // 用户VID
"authorId": "author_id_here", // 作者ID
"name": "author_name", // 作者姓名
"nameType": 1, // 姓名类型 (1: 作者名)
"opType": 1, // 操作类型 (1: 查询订阅状态)
"maxIdx": 0, // 最大索引
"count": 20 // 返回数量
}

请求头:

javascript
1
2
3
4
5
{
"vid": "12345",
"skey": "your_skey",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0"
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
"errcode": 0,
"data": {
"isSubscribed": true,
"authorInfo": {
"authorId": "author_123",
"name": "张三",
"avatar": "https://example.com/avatar.jpg",
"description": "知名作家",
"bookCount": 15,
"followerCount": 10000
},
"recentBooks": [
{
"bookId": "book_456",
"title": "最新作品",
"publishTime": 1640995200,
"cover": "https://example.com/cover.jpg"
}
],
"subscriptionTime": 1640995200
}
}

书单 API

微信读书书单服务相关的 API 接口,包括书单创建、管理、评论、点赞、收藏等功能。

书单管理 API

创建书单

POST https://i.weread.qq.com/booklist/add

创建新的书单。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"name": "我的推荐书单", // 书单名称
"description": "精选好书推荐", // 书单描述
"bookItems": [ // 书籍列表
{
"bookId": "book1",
"reason": "推荐理由1",
"order": 1
},
{
"bookId": "book2",
"reason": "推荐理由2",
"order": 2
}
],
"shareToDiscover": 1 // 是否分享到发现页
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"errcode": 0,
"data": {
"booklistId": "booklist_123456",
"name": "我的推荐书单",
"description": "精选好书推荐",
"createTime": 1640995200,
"updateTime": 1640995200,
"bookCount": 2,
"collectCount": 0,
"likeCount": 0,
"readCount": 0,
"shareToDiscover": 1,
"books": [
{
"bookId": "book1",
"title": "书籍1",
"author": "作者1",
"cover": "封面URL1",
"reason": "推荐理由1",
"order": 1
}
]
}
}

更新书单

POST https://i.weread.qq.com/booklist/update

更新现有书单的信息。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
{
"booklistId": "booklist_123456", // 书单ID
"name": "更新后的书单名称", // 新名称
"description": "更新后的描述", // 新描述
"bookItems": [ // 更新后的书籍列表
{
"bookId": "book1",
"reason": "更新的推荐理由",
"order": 1
}
],
"shareToDiscover": 0 // 是否分享到发现页
}
  'skey': skey,
  'User-Agent': 'WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0',
  'Content-Type': 'application/json'
},
body: JSON.stringify({
  booklistId: booklistId,
  name: name,
  description: description,
  bookItems: bookItems,
  shareToDiscover: shareToDiscover
})

});

return await response.json();
}

plaintext
1
2
3
4
5
6
7
8
9
10
11
12

### 删除书单

#### POST https://i.weread.qq.com/booklist/delete

删除指定的书单。

**请求参数:**
```javascript
{
"booklistId": "booklist_123456" // 要删除的书单ID
}

获取书单详情

GET /booklist/single

获取指定书单的详细信息。

请求参数 (Query):

javascript
1
2
3
4
{
"booklistId": "booklist_123456", // 书单ID
"synckey": 123456789 // 同步键
}

获取书单列表

GET /booklists

获取用户的书单列表或书架书单列表。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
"vid": "vid_123456", // 用户ID
"skey": "skey_123456",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0"
}
```
## 书单内容 API

### 添加书籍到书单

#### POST https://i.weread.qq.com/booklist/addBook

向现有书单添加书籍。

**请求参数:**
```javascript
{
"booklistId": "booklist_123456", // 书单ID
"bookItems": [ // 要添加的书籍
{
"bookId": "new_book_1",
"reason": "新增推荐理由",
"order": 3
}
]
}

从书单删除书籍

POST https://i.weread.qq.com/booklist/delBook

从书单中删除指定书籍。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
{
"booklistId": "booklist_123456", // 书单ID
"bookItems": [ // 要删除的书籍
{
"bookId": "book_to_remove",
"order": 1
}
]
}

书单互动 API

点赞书单

POST https://i.weread.qq.com/booklist/like

对书单进行点赞或取消点赞。

请求参数:

javascript
1
2
3
4
{
"booklistId": "booklist_123456", // 书单ID
"isUnlike": 0 // 0: 点赞, 1: 取消点赞
}

收藏书单

POST https://i.weread.qq.com/booklist/collect

收藏或取消收藏书单。

请求参数:

javascript
1
2
3
4
{
"booklistId": "booklist_123456", // 书单ID
"isCancel": 0 // 0: 收藏, 1: 取消收藏
}

分享书单到发现页

POST https://i.weread.qq.com/booklist/shareToDiscover

将书单分享到发现页面。

请求参数:

javascript
1
2
3
4
{
"booklistId": "booklist_123456", // 书单ID
"isCancel": 0 // 0: 分享, 1: 取消分享
}

阅读书单

POST https://i.weread.qq.com/booklist/read

标记书单为已阅读。

请求参数:

javascript
1
2
3
{
"booklistId": "booklist_123456" // 书单ID
}

书单评论 API

添加评论

POST https://i.weread.qq.com/booklist/comment

对书单添加评论。

发送评论

请求参数:

javascript
1
2
3
4
{
"booklistId": "booklist_123456", // 书单ID
"content": "评论内容" // 评论内容
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"errcode": 0,
"errmsg": "success",
"data": {
"commentId": "comment_123456",
"content": "评论内容",
"createAt": 1640995200,
"updateAt": 1640995200,
"likeCount": 0,
"replyCount": 0,
"user": {
"vid": "user_123456",
"nickname": "用户昵称",
"avatar": "用户头像URL"
}
}
}
回复评论

请求参数:

javascript
1
2
3
4
5
6
{
"booklistId": "booklist_123456", // 书单ID
"content": "评论内容", // 评论内容
"toUserVid": "user_123456", // 被回复用户ID
"toCommentId": "comment_123456" // 被回复评论ID
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"errcode": 0,
"errmsg": "success",
"data": {
"commentId": "comment_123456",
"content": "评论内容",
"createAt": 1640995200,
"updateAt": 1640995200,
"likeCount": 0,
"replyCount": 0,
"user": {
"vid": "user_123456",
"nickname": "用户昵称",
"avatar": "用户头像URL"
}
}
}

删除评论

POST https://i.weread.qq.com/booklist/delComment

删除指定的评论。

请求参数:

javascript
1
2
3
{
"commentId": "comment_123456" // 评论ID
}

点赞评论

POST https://i.weread.qq.com/booklist/commentlike

对评论进行点赞或取消点赞。

请求参数:

javascript
1
2
3
4
{
"commentId": "comment_123456", // 评论ID
"isUnlike": 0 // 0: 点赞, 1: 取消点赞
}

书签管理 API

微信读书书签管理相关的 API 接口,包括书签的添加、删除、更新、查询和分享功能。

添加书签

添加普通书籍书签

POST https://i.weread.qq.com/book/addBookmark

添加普通书籍的书签。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
{
"bookId": "book_123456", // 书籍ID
"chapterUid": 1, // 章节UID
"type": 1, // 书签类型
"range": "0-100", // 选中范围
"markText": "这是一段重要的内容", // 标记文本
"bookVersion": 1, // 书籍版本
"style": 1, // 样式
"colorStyle": 2, // 颜色样式
"chapterName": "第一章", // 章节名称(可选)
"translateMode": "zh", // 翻译模式(可选)
"contextAbstract": "上下文摘要" // 上下文摘要(可选)
}

请求头:

javascript
1
2
3
4
5
6
{
"vid": "12345",
"skey": "your_skey",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0",
"Content-Type": "application/json"
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"errcode": 0,
"data": {
"bookmarkId": "bookmark_789012",
"bookId": "book_123456",
"chapterUid": 1,
"type": 1,
"range": "0-100",
"markText": "这是一段重要的内容",
"style": 1,
"colorStyle": 2,
"createTime": 1640995200000,
"updateTime": 1640995200000,
"chapterName": "第一章"
}
}

添加公众号书签

POST https://i.weread.qq.com/book/addBookmark

添加公众号文章的书签。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
{
"bookId": "mp_article_123", // 公众号文章ID
"type": 1, // 书签类型
"range": "0-100", // 选中范围
"markText": "重要内容", // 标记文本
"style": 1, // 样式
"refMpInfo": { // 公众号信息
"mpId": "mp_123",
"title": "文章标题",
"author": "公众号名称",
"url": "https://mp.weixin.qq.com/s/xxx"
}
}

获取书签列表

GET /book/bookmarklist

获取指定书籍的书签列表。

请求参数 (Query):

javascript
1
2
3
4
{
"bookId": "book_123456", // 书籍ID
"synckey": 123456789 // 同步键
}

请求头:

javascript
1
2
3
4
5
{
"vid": "12345",
"skey": "your_skey",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0"
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"errcode": 0,
"data": {
"bookmarks": [
{
"bookmarkId": "bookmark_789012",
"bookId": "book_123456",
"chapterUid": 1,
"chapterName": "第一章",
"type": 1,
"range": "0-100",
"markText": "这是一段重要的内容",
"style": 1,
"colorStyle": 2,
"createTime": 1640995200000,
"updateTime": 1640995200000,
"contextAbstract": "上下文摘要"
}
],
"synckey": 123456790,
"hasMore": false,
"totalCount": 15
}
}

删除书签

POST https://i.weread.qq.com/book/removeBookmark

删除书签,支持单个删除、批量删除和按书籍删除。

单个删除:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
async function removeBookmark(bookmarkId, vid, skey) {
const response = await fetch('https://i.weread.qq.com/book/removeBookmark', {
method: 'POST',
headers: {
'vid': vid.toString(),
'skey': skey,
'User-Agent': 'WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0',
'Content-Type': 'application/json'
},
body: JSON.stringify({
bookmarkId: bookmarkId
})
});

return await response.json();
}

批量删除:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
async function removeBookmarks(bookmarkIds, vid, skey) {
const response = await fetch('https://i.weread.qq.com/book/removeBookmark', {
method: 'POST',
headers: {
'vid': vid.toString(),
'skey': skey,
'User-Agent': 'WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0',
'Content-Type': 'application/json'
},
body: JSON.stringify({
bookmarkIds: bookmarkIds
})
});

return await response.json();
}

按书籍删除:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
async function removeBookmarksByBook(bookId, vid, skey) {
const response = await fetch('https://i.weread.qq.com/book/removeBookmark', {
method: 'POST',
headers: {
'vid': vid.toString(),
'skey': skey,
'User-Agent': 'WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0',
'Content-Type': 'application/json'
},
body: JSON.stringify({
deleteWithBookId: bookId
})
});

return await response.json();
}

更新书签

POST https://i.weread.qq.com/book/updateBookmark

更新书签的样式和颜色。

更新样式和颜色:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
async function updateBookmarkStyle(bookmarkId, style, colorStyle, vid, skey) {
const response = await fetch('https://i.weread.qq.com/book/updateBookmark', {
method: 'POST',
headers: {
'vid': vid.toString(),
'skey': skey,
'User-Agent': 'WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0',
'Content-Type': 'application/json'
},
body: JSON.stringify({
bookmarkId: bookmarkId,
style: style,
colorStyle: colorStyle
})
});

return await response.json();
}

分享书签

POST https://i.weread.qq.com/bookmark/shareToDiscover

将书签分享到发现页面。

普通书籍书签分享:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
async function shareBookmarkToDiscover(bookmarkId, bookId, content, refMpInfo = null, hideInMyNotes = false, type = 1, vid, skey) {
const response = await fetch('https://i.weread.qq.com/bookmark/shareToDiscover', {
method: 'POST',
headers: {
'vid': vid.toString(),
'skey': skey,
'User-Agent': 'WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0',
'Content-Type': 'application/json'
},
body: JSON.stringify({
bookmarkId: bookmarkId,
bookId: bookId,
content: content,
refMpInfo: refMpInfo,
hideInMyNotes: hideInMyNotes,
type: type
})
});

return await response.json();
}


公众号书签分享:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
async function shareMpBookmarkToDiscover(bookId, range, markText, shareMsg, backgroundColor, fontColor, fontFamily, refMpInfo, hideInMyNotes, type, vid, skey) {
const response = await fetch('https://i.weread.qq.com/bookmark/shareToDiscover', {
method: 'POST',
headers: {
'vid': vid.toString(),
'skey': skey,
'User-Agent': 'WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0',
'Content-Type': 'application/json'
},
body: JSON.stringify({
bookId: bookId,
range: range,
markText: markText,
shareMsg: shareMsg,
backgroundColor: backgroundColor,
fontColor: fontColor,
fontFamily: fontFamily,
refMpInfo: refMpInfo,
hideInMyNotes: hideInMyNotes,
type: type
})
});

return await response.json();
}


聊天、存储与反馈 API

微信读书聊天服务、云对象存储(COS)服务和反馈服务相关的 API 接口。

聊天服务 API

发送消息

POST https://i.weread.qq.com/chat/send

发送聊天消息。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
{
"type": 1, // 消息类型
"sid": "session_id_here", // 会话ID
"content": { // 消息内容
"text": "Hello, world!",
"type": "text",
"extra": {}
},
"clientTime": 1640995200000, // 客户端时间戳
"patchVersion": "1.0.0" // 补丁版本(可选)
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
{
"errcode": 0,
"data": {
"messageId": "msg_123456",
"timestamp": 1640995200000,
"status": "sent",
"sessionId": "session_id_here"
}
}

标记消息已读

POST https://i.weread.qq.com/chat/read

标记会话中的消息为已读状态。

请求参数:

javascript
1
2
3
4
{
"sid": "session_id_here", // 会话ID
"latestMsgId": "msg_123456" // 最新消息ID
}

删除会话

POST https://i.weread.qq.com/chat/delete

删除指定的聊天会话。

请求参数:

javascript
1
2
3
{
"sid": "session_id_here" // 要删除的会话ID
}

获取会话列表

GET /chat/sessionlist

获取用户的聊天会话列表。

请求参数 (Query):

javascript
1
2
3
4
{
"synckey": 123456789, // 同步键
"removedSynckey": 123456788 // 已删除消息同步键
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
"errcode": 0,
"data": {
"sessions": [
{
"sessionId": "session_123",
"title": "AI 助手",
"lastMessage": {
"messageId": "msg_456",
"content": "最后一条消息内容",
"timestamp": 1640995200000,
"type": "text"
},
"unreadCount": 2,
"participants": [
{
"userId": "user_123",
"nickname": "用户昵称",
"avatar": "头像URL"
}
],
"updateTime": 1640995200000
}
],
"synckey": 123456790,
"removedSynckey": 123456789,
"hasMore": false
}
}

云对象存储 API

获取上传凭证

GET /cos/getcredential

获取云存储上传凭证。

方式一:基础凭证获取
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
async function getCredential(mode, suffix = null, from = null, vid, skey) {
const params = new URLSearchParams({
mode: mode.toString()
});

if (suffix) params.append('suffix', suffix);
if (from) params.append('from', from);

const response = await fetch(`https://i.weread.qq.com/cos/getcredential?${params}`, {
headers: {
'vid': vid.toString(),
'skey': skey,
'User-Agent': 'WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0'
}
});

return await response.json();
}
方式二:详细凭证获取
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
async function getDetailedCredential(name = null, suffix = null, pictype = null, cbid = null, scene = null, from = null, vid, skey) {
const params = new URLSearchParams();

if (name) params.append('name', name);
if (suffix) params.append('suffix', suffix);
if (pictype) params.append('pictype', pictype);
if (cbid) params.append('cbid', cbid);
if (scene) params.append('scene', scene);
if (from) params.append('from', from);

const response = await fetch(`https://i.weread.qq.com/cos/getcredential?${params}`, {
headers: {
'vid': vid.toString(),
'skey': skey,
'User-Agent': 'WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0'
}
});

return await response.json();
}

/

接收上传结果

POST https://i.weread.qq.com/cos/receive

接收云存储上传完成的通知。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
{
"md5": "file_md5_hash", // 文件MD5(可选)
"name": "filename.jpg", // 文件名(可选)
"bookId": "book_123", // 关联书籍ID(可选)
"timestamp": 1640995200, // 时间戳
"random": 12345, // 随机数
"signature": "signature_string", // 签名
"from": "app" // 来源
}

反馈服务 API

发送文本反馈

POST https://i.weread.qq.com/cgi-bin/sync_msg

发送文本类型的用户反馈。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
"screenresolution": "1920x1080", // 屏幕分辨率
"screenscale": 2.0, // 屏幕缩放比例
"baseinfo": { // 基础信息
"appId": 123,
"authtype": 1,
"sid": "session_id",
"vid": 456,
"appversion": "7.0.0",
"platform": 1,
"os": "Android",
"name": "device_name",
"deviceid": "device_id",
"imei": "imei_number",
"clitime": 1640995200000,
"channelid": 1
},
"seqid": 1, // 序列号
"msgdata": [ // 消息数据
{
"datatype": 1,
"content": "这是用户反馈内容",
"localtime": 1640995200000
}
]
}

发送图片反馈

POST https://i.weread.qq.com/cgi-bin/sync_msg

发送包含图片的用户反馈。

请求参数(Multipart):

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 这是一个 multipart/form-data 请求
const formData = new FormData();
formData.append('func', 'sync_msg');
formData.append('screenresolution', '1920x1080');
formData.append('screenscale', '2.0');
formData.append('seqid', '1');
formData.append('datatype', '2'); // 图片类型
formData.append('appId', '123');
formData.append('authtype', '1');
formData.append('sid', 'session_id');
formData.append('vid', vid.toString());
formData.append('appversion', '7.0.0');
formData.append('platform', '1');
formData.append('os', 'Android');
formData.append('name', 'device_name');
formData.append('deviceid', 'device_id');
formData.append('imei', 'imei_number');
formData.append('clitime', Date.now().toString());
formData.append('channelid', '1');
formData.append('localtime', Date.now().toString());
formData.append('nickname', 'user_nickname');
formData.append('file', imageFile); // 图片文件

上传日志文件

POST https://i.weread.qq.com/cgi-bin/log_upload

上传应用日志文件用于问题诊断。

前端实现:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const params = new URLSearchParams({
inputc: 'multipart',
func: 'log_upload'
});

Object.entries(deviceInfo).forEach(([key, value]) => {
formData.append(key, value.toString());
});

formData.append('logfile', logFile);

const response = await fetch(`https://feedback.weread.qq.com/cgi-bin/log_upload?${params}`, {
method: 'POST',
headers: {
'vid': vid.toString(),
'skey': skey,
'User-Agent': 'WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0'
},
body: formData
});

对话框管理

获取对话框信息

GET /dialog/detail

获取指定对话框的详细信息。

请求参数 (Query):

javascript
1
2
3
{
"dialogId": "dialog_id_here" // 对话框ID
}

请求头:

javascript
1
2
3
4
5
{
"vid": "12345",
"skey": "your_skey",
"User-Agent": "WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0"
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
"errcode": 0,
"data": {
"dialogId": "dialog_123",
"title": "对话框标题",
"type": "feedback",
"status": "active",
"createTime": 1640995200,
"updateTime": 1640995300,
"participants": [
{
"userVid": "user_123",
"role": "user",
"name": "用户名"
},
{
"userVid": "admin_456",
"role": "admin",
"name": "客服"
}
],
"lastMessage": {
"messageId": "msg_789",
"content": "最后一条消息",
"sendTime": 1640995300,
"sender": "user_123"
}
}
}