CC BY-NC-SA 4.0

通用headers

javascript
1
2
3
4
5
{
'vid': vid.toString(),
'skey': skey,
'User-Agent': 'WeRead/7.0.0 WRBrand/huawei Dalvik/2.1.0'
}

登录在微信读书逆向分析-1

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 接口,包括书评创建、编辑、删除、互动、举报等全生命周期功能。

书评创建 API

添加普通书评

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

创建普通的书籍书评。

请求参数:

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
{
"bookId": "book_123456", // 书籍ID
"content": "这本书非常精彩...", // 书评内容
"chapterUid": 1, // 章节UID
"chapterName": "第一章", // 章节名称
"range": "100-200", // 引用范围
"translateMode": "zh", // 翻译模式
"shareMsg": "分享消息", // 分享消息
"contextAbstract": "上下文摘要", // 上下文摘要
"type": 1, // 书评类型
"bookVersion": 1, // 书籍版本
"atUserVids": [], // @用户列表
"isPrivate": 0, // 是否私密 (0: 公开, 1: 私密)
"friendship": 0, // 好友可见性
"refReviewId": null, // 引用书评ID
"originalReviewId": null, // 原始书评ID
"htmlContent": "<p>HTML内容</p>", // HTML格式内容
"topicRanges": [], // 话题范围
"title": "书评标题", // 书评标题
"shareToGroup": 0, // 分享到群组
"notVisibleToFriends": 0, // 对好友不可见
"isFullImageReview": 0, // 是否全图书评
"pencilNote": null, // 手写笔记
"colorStyle": 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
{
"errcode": 0,
"data": {
"reviewId": "review_789012",
"bookId": "book_123456",
"content": "这本书非常精彩...",
"author": {
"userVid": "user_123",
"nickname": "张三",
"avatar": "https://example.com/avatar.jpg"
},
"stats": {
"likeCount": 0,
"commentCount": 0,
"shareCount": 0,
"readCount": 0
},
"createTime": 1640995200000,
"updateTime": 1640995200000,
"status": "published",
"visibility": {
"isPrivate": false,
"friendship": 0,
"notVisibleToFriends": false
},
"bookInfo": {
"title": "人工智能简史",
"author": "作者名",
"cover": "https://example.com/cover.jpg"
}
}
}

添加音频书评

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

创建带音频的书评。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
{
"bookId": "book_123456", // 书籍ID
"chapterUid": 1, // 章节UID
"range": "100-200", // 引用范围
"shareMsg": "分享消息", // 分享消息
"type": 2, // 类型(音频书评)
"bookVersion": 1, // 书籍版本
"audioId": "audio_789012", // 音频ID
"auInterval": 300, // 音频间隔(秒)
"audioArticleId": "article_456" // 音频文章ID
}

添加公众号书评

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

为公众号文章创建书评。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"bookId": "mp_article_123", // 公众号文章ID
"content": "这篇文章观点很新颖", // 书评内容
"range": "100-200", // 引用范围
"type": 1, // 书评类型
"bookVersion": 1, // 版本
"isPrivate": 0, // 是否私密
"friendship": 0, // 好友可见性
"refMpInfo": { // 公众号信息
"mpId": "mp_123",
"title": "文章标题",
"author": "公众号名称",
"url": "https://mp.weixin.qq.com/s/xxx"
},
"shareMsg": "分享消息", // 分享消息
"notVisibleToFriends": 0 // 对好友不可见
}

添加群组书评

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

在群组中创建书评。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
{
"content": "群组书评内容", // 书评内容
"groupId": "group_123", // 群组ID
"pictures": [], // 图片数组
"type": 1, // 书评类型
"bookId": "book_123456", // 书籍ID
"notShareToFriend": 0, // 不分享给好友
"link": null, // 链接对象
"topics": [], // 话题列表
"isPrivate": 0, // 是否私密
"friendship": 0, // 好友可见性
"notVisibleToFriends": 0 // 对好友不可见
}

添加带评分的书评

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

创建带星级评分的书评。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"bookId": "book_123456", // 书籍ID
"content": "书评内容", // 书评内容
"range": "100-200", // 引用范围
"translateMode": "zh", // 翻译模式
"shareMsg": "分享消息", // 分享消息
"type": 1, // 书评类型
"bookVersion": 1, // 书籍版本
"atUserVids": [], // @用户列表
"star": 5, // 星级评分 (1-5)
"isPrivate": 0, // 是否私密
"friendship": 0, // 好友可见性
"htmlContent": "<p>HTML内容</p>", // HTML格式内容
"topicRanges": [], // 话题范围
"title": "书评标题", // 书评标题
"notVisibleToFriends": 0 // 对好友不可见
}

添加专辑书评

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

为专辑创建书评。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
{
"content": "专辑书评内容", // 书评内容
"trackId": "track_123", // 音轨ID
"type": 3, // 类型(专辑书评)
"isPrivate": 0, // 是否私密
"friendship": 0, // 好友可见性
"albumId": "album_456", // 专辑ID
"star": 4, // 星级评分
"notVisibleToFriends": 0 // 对好友不可见
}

书评编辑 API

编辑书评内容

POST https://i.weread.qq.com/review/useredit

编辑已发布的书评内容和设置。

请求参数:

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
{
"reviewId": "review_789012", // 书评ID
"content": "修改后的书评内容", // 新的书评内容
"isPrivate": 0, // 是否私密
"friendship": 0, // 好友可见性
"notVisibleToFriends": 0, // 对好友不可见
"star": 4, // 星级评分
"pictures": [], // 图片数组
"type": 1, // 书评类型
"notShareToFriend": 0, // 不分享给好友
"link": null, // 链接对象
"topics": [], // 话题列表
"groupId": null, // 群组ID
"bookVersion": 1, // 书籍版本
"refMpInfo": null, // 公众号信息
"shareMsg": "分享消息", // 分享消息
"trackId": null, // 音轨ID
"albumId": null, // 专辑ID
"bookId": "book_123456", // 书籍ID
"chapterUid": 1, // 章节UID
"chapterName": "第一章", // 章节名称
"range": "100-200", // 引用范围
"contextAbstract": "上下文摘要", // 上下文摘要
"atUserVids": [], // @用户列表
"refReviewId": null, // 引用书评ID
"originalReviewId": null, // 原始书评ID
"htmlContent": "<p>HTML内容</p>", // HTML格式内容
"topicRanges": [], // 话题范围
"title": "书评标题", // 书评标题
"shareToGroup": 0, // 分享到群组
"pencilNote": null, // 手写笔记
"colorStyle": 1 // 颜色样式
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"errcode": 0,
"data": {
"reviewId": "review_789012",
"content": "修改后的书评内容",
"updateTime": 1640995300000,
"editHistory": [
{
"editTime": 1640995300000,
"reason": "内容更新"
}
],
"version": 2
}
}

简单编辑书评

POST https://i.weread.qq.com/review/edit

简单编辑书评的基本信息。

请求参数:

javascript
1
2
3
4
5
6
{
"reviewId": "review_789012", // 书评ID
"bookId": "book_123456", // 书籍ID
"chapterUid": 1, // 章节UID
"range": "100-200" // 引用范围
}

书评互动 API

点赞书评

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

为书评点赞或取消点赞。

请求参数:

javascript
1
2
3
4
{
"reviewId": "review_789012", // 书评ID
"isUnlike": 0 // 是否取消点赞 (0: 点赞, 1: 取消点赞)
}

不喜欢书评

POST https://i.weread.qq.com/review/dislike

标记不喜欢某个书评。

请求参数:

javascript
1
2
3
4
{
"reviewId": "review_789012", // 书评ID
"cancel": 0 // 是否取消不喜欢 (0: 不喜欢, 1: 取消)
}

转发书评

POST https://i.weread.qq.com/review/repost

转发书评到自己的动态。

请求参数:

javascript
1
2
3
4
{
"reviewId": "review_789012", // 书评ID
"repost": 1 // 转发标识 (1: 转发, 0: 取消转发)
}

书评管理 API

获取单个书评

GET /review/single

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

请求参数 (Query):

javascript
1
2
3
4
5
6
7
8
9
10
{
"reviewId": "review_789012", // 书评ID
"bookReviewCount": 10, // 书评数量
"synckey": 123456789, // 同步键
"commentsCount": 20, // 评论数量
"commentsDirection": 1, // 评论方向
"likesCount": 50, // 点赞数量
"likesDirection": 1, // 点赞方向
"groupId": "group_123" // 群组ID(可选)
}

响应示例:

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
{
"errcode": 0,
"data": {
"review": {
"reviewId": "review_789012",
"bookId": "book_123456",
"content": "这本书非常精彩...",
"author": {
"userVid": "user_123",
"nickname": "张三",
"avatar": "https://example.com/avatar.jpg",
"level": 15,
"isFollowing": false
},
"bookInfo": {
"title": "人工智能简史",
"author": "作者名",
"cover": "https://example.com/cover.jpg",
"isbn": "9787111234567"
},
"stats": {
"likeCount": 156,
"commentCount": 23,
"shareCount": 8,
"readCount": 1250
},
"createTime": 1640995200000,
"updateTime": 1640995300000,
"isLiked": false,
"isFollowed": false,
"visibility": {
"isPrivate": false,
"friendship": 0
}
},
"comments": [
{
"commentId": "comment_123",
"content": "说得很有道理",
"author": {
"userVid": "user_456",
"nickname": "李四",
"avatar": "https://example.com/avatar2.jpg"
},
"createTime": 1640995250000,
"likeCount": 5,
"isLiked": false
}
],
"likes": [
{
"userVid": "user_789",
"nickname": "王五",
"avatar": "https://example.com/avatar3.jpg",
"likeTime": 1640995220000
}
]
}
}

加载更多书评评论

GET /review/single

加载指定书评的更多评论。

请求参数 (Query):

javascript
1
2
3
4
5
6
7
{
"reviewId": "review_789012", // 书评ID
"synckey": 123456789, // 同步键
"commentsMaxIdx": 20, // 评论最大索引
"commentsCount": 10, // 评论数量
"commentsDirection": 1 // 评论方向
}

加载更多书评点赞

GET /review/single

加载指定书评的更多点赞信息。

请求参数 (Query):

javascript
1
2
3
4
5
6
7
{
"reviewId": "review_789012", // 书评ID
"synckey": 123456789, // 同步键
"likesMaxIdx": 50, // 点赞最大索引
"likesCount": 20, // 点赞数量
"likesDirection": 1 // 点赞方向
}

删除书评

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

删除指定的书评。

请求参数:

javascript
1
2
3
{
"reviewId": "review_789012" // 书评ID
}

举报书评

POST https://i.weread.qq.com/review/accuse

举报不当的书评内容。

请求参数:

javascript
1
2
3
4
5
6
{
"id": "review_789012", // 书评ID
"reason": ["spam", "inappropriate"], // 举报原因列表
"type": "review", // 举报类型
"isBlack": 0 // 是否拉黑 (0: 否, 1: 是)
}

评论管理 API

添加评论

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

为书评添加评论。

请求参数:

javascript
1
2
3
4
{
"reviewId": "review_789012", // 书评ID
"content": "这个观点很有意思" // 评论内容
}

回复评论

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

回复指定用户的评论。

请求参数:

javascript
1
2
3
4
5
6
{
"reviewId": "review_789012", // 书评ID
"content": "回复内容", // 回复内容
"toUserVid": 123456, // 被回复用户VID
"toCommentId": "comment_123" // 被回复评论ID
}

打赏评论

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

为评论进行打赏。

请求参数:

javascript
1
2
3
4
5
{
"reviewId": "review_789012", // 书评ID
"content": "打赏评论内容", // 打赏评论内容
"isReward": 1 // 是否为打赏评论 (1: 是)
}

点赞评论

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

为评论点赞或取消点赞。

请求参数:

javascript
1
2
3
4
{
"commentId": "comment_123", // 评论ID
"isUnlike": 0 // 是否取消点赞 (0: 点赞, 1: 取消点赞)
}

加载更多评论

GET /review/commentloadmore

加载更多评论内容。

请求参数 (Query):

javascript
1
2
3
4
5
6
7
8
{
"reviewId": "review_789012", // 书评ID(可选)
"booklistId": "booklist_123", // 书单ID(可选)
"commentId": "comment_456", // 评论ID(可选)
"maxIdx": 20, // 最大索引(可选)
"count": 10, // 获取数量(可选)
"isExpandAll": 1 // 是否展开全部
}

删除评论

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

删除指定的评论。

请求参数:

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

相关内容 API

获取相关书单

GET /review/relatedbooklist

获取与书评相关的书单。

请求参数 (Query):

javascript
1
2
3
{
"reviewId": "review_789012" // 书评ID
}

响应示例:

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": {
"relatedBooklists": [
{
"booklistId": "booklist_123",
"title": "人工智能必读书单",
"description": "精选人工智能领域经典书籍",
"cover": "https://example.com/booklist_cover.jpg",
"bookCount": 15,
"followerCount": 2580,
"author": {
"userVid": "user_456",
"nickname": "AI专家",
"avatar": "https://example.com/avatar.jpg"
},
"createTime": 1640995200000,
"updateTime": 1640995300000,
"tags": ["人工智能", "技术", "科普"]
}
],
"totalCount": 5,
"relevanceScore": 0.85
}
}

获取相关书评

GET /review/relatedReviews

获取与当前书评相关的其他书评。

请求参数 (Query):

javascript
1
2
3
4
{
"reviewId": "review_789012", // 书评ID
"count": 10 // 获取数量
}

响应示例:

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
{
"errcode": 0,
"data": {
"relatedReviews": [
{
"reviewId": "review_456789",
"bookId": "book_654321",
"content": "同样讨论人工智能的精彩书评...",
"author": {
"userVid": "user_789",
"nickname": "科技爱好者",
"avatar": "https://example.com/avatar2.jpg"
},
"bookInfo": {
"title": "机器学习实战",
"author": "作者名",
"cover": "https://example.com/cover2.jpg"
},
"stats": {
"likeCount": 89,
"commentCount": 12,
"shareCount": 5
},
"createTime": 1640995100000,
"similarity": 0.78
}
],
"totalCount": 25,
"hasMore": true
}
}

书评查询 API

获取用户书评列表

GET /review/list

获取指定书籍的用户书评列表。

请求参数 (Query):

javascript
1
2
3
4
5
6
7
{
"bookId": "book_123456", // 书籍ID
"listType": 1, // 列表类型
"mine": 1, // 是否只看自己的 (0: 所有, 1: 仅自己)
"synckey": 123456789, // 同步键
"listMode": 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
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"errcode": 0,
"data": {
"reviews": [
{
"reviewId": "review_123456",
"bookId": "book_123456",
"content": "这本书非常精彩...",
"author": {
"userVid": "user_789",
"nickname": "张三",
"avatar": "https://example.com/avatar.jpg"
},
"stats": {
"likeCount": 25,
"commentCount": 8
},
"createTime": 1640995200000
}
],
"synckey": 123456790,
"hasMore": true,
"totalCount": 156
}
}

获取用户所有书评

GET /review/list

获取用户的所有书评(不限定书籍)。

请求参数 (Query):

javascript
1
2
3
4
5
6
7
{
"uservid": "user_123456", // 用户VID
"listType": 1, // 列表类型
"type": 1, // 类型
"synckey": 123456789, // 同步键
"listMode": 1 // 列表模式
}

高级书评功能

获取书籍章节书评列表

GET /review/list

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

请求参数 (Query):

javascript
1
2
3
4
5
6
7
{
"listType": 1, // 列表类型
"bookId": "book_123456", // 书籍ID
"chapterUid": 1, // 章节UID
"synckey": 123456789, // 同步键
"listMode": 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
{
"errcode": 0,
"data": {
"reviews": [
{
"reviewId": "review_123456",
"bookId": "book_123456",
"chapterUid": 1,
"chapterTitle": "第一章",
"content": "这一章的内容非常精彩...",
"author": {
"userVid": "user_789",
"nickname": "张三",
"avatar": "https://example.com/avatar.jpg",
"level": 15
},
"stats": {
"likeCount": 25,
"commentCount": 8,
"shareCount": 3
},
"createTime": 1640995200000,
"updateTime": 1640995300000,
"isWonderful": true, // 是否精彩书评
"tags": ["深度思考", "精彩"],
"relatedQuote": { // 相关引用
"text": "人工智能将改变世界",
"range": "100-120"
}
}
],
"synckey": 123456790,
"hasMore": true,
"totalCount": 156
}
}

获取好友书评列表

GET /review/list

获取好友的书评列表。

请求参数 (Query):

javascript
1
2
3
4
5
6
{
"listType": 2, // 列表类型(好友书评)
"bookId": "book_123456", // 书籍ID
"synckey": 123456789, // 同步键
"listMode": 1 // 列表模式
}

讲座书评 API

添加讲座书评

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

添加讲座相关的书评。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"bookId": "lecture_123456", // 讲座ID
"content": "这个讲座非常有启发性...", // 书评内容
"type": 2, // 书评类型(讲座)
"lectureInfo": { // 讲座信息
"lectureId": "lecture_123456",
"title": "人工智能前沿技术",
"speaker": "张教授",
"duration": 3600,
"category": "科技"
},
"isPrivate": 0, // 是否私密
"shareToGroup": 0, // 分享到群组
"atUserVids": [], // @用户列表
"htmlContent": "<p>HTML内容</p>", // HTML格式内容
"colorStyle": 1 // 颜色样式
}

请求头:

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": {
"reviewId": "review_789012",
"bookId": "lecture_123456",
"content": "这个讲座非常有启发性...",
"type": 2,
"createTime": 1640995200000,
"updateTime": 1640995200000,
"stats": {
"likeCount": 0,
"commentCount": 0,
"shareCount": 0
}
}
}

获取讲座书评列表

GET /review/list

获取讲座的书评列表。

请求参数 (Query):

javascript
1
2
3
4
5
6
{
"bookId": "lecture_123456", // 讲座ID
"listType": 3, // 列表类型(讲座书评)
"synckey": 123456789, // 同步键
"listMode": 1 // 列表模式
}

福利系统 API

微信读书福利系统相关的 API 接口,包括福利查询、获取和管理功能。

查询福利

GET /reader/welfareCoin

查询阅读器福利信息,包括可用福利、福利条件等。

请求参数 (Query):

javascript
1
2
3
4
5
{
"bookId": "book_id_here", // 书籍ID
"chapterUid": 1, // 章节UID(可选)
"action": "query" // 操作类型
}

请求头:

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": {
"availableWelfare": [
{
"key": "reading_time_bonus",
"type": "coin",
"amount": 10,
"condition": "阅读30分钟",
"status": "available"
},
{
"key": "chapter_complete_bonus",
"type": "coin",
"amount": 5,
"condition": "完成章节阅读",
"status": "claimed"
}
],
"totalCoins": 150,
"dailyLimit": 50
}
}

获取福利

GET /reader/welfareCoin

获取福利奖励,领取可用的福利。

请求参数 (Query):

javascript
1
2
3
4
5
{
"bookId": "book_id_here", // 书籍ID
"key": "welfare_key", // 福利键
"action": "get" // 操作类型
}

请求头:

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": {
"success": true,
"reward": {
"type": "coin",
"amount": 10,
"description": "阅读时长奖励"
},
"newBalance": 160
}
}

奖励与礼品 API

微信读书奖励与礼品相关的 API 接口,包括周报兑换、礼品购买、礼品发送、礼品历史等功能。

周报兑换 API

查询所有可兑换奖励

POST https://i.weread.qq.com/weekly/exchange

查询所有可兑换的奖励列表,用于展示可用的奖励选项。

请求参数:

javascript
1
2
3
4
5
6
{
"awardLevelId": 0, // 奖励等级ID (0表示查询所有)
"awardChoiceType": 0, // 奖励选择类型 (0表示查询)
"isExchangeAward": 0, // 是否兑换奖励 (0表示查询, 1表示兑换)
"pf": "weread_wx-2001-iap-2001-iphone" // 平台标识
}

请求头:

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{
"errcode": 0,
"data": {
"awards": [
{
"id": 1,
"name": "7天无限卡体验",
"description": "7天无限阅读体验卡",
"type": "experience_card",
"duration": 7, // 天数
"status": 1, // 1: 可兑换, 0: 不可兑换
"cost": 100, // 所需积分
"icon": "https://example.com/card1.png",
"validUntil": 1640995200 // 有效期截止时间
},
{
"id": 2,
"name": "3天无限卡体验",
"description": "3天无限阅读体验卡",
"type": "experience_card",
"duration": 3,
"status": 1,
"cost": 50,
"icon": "https://example.com/card2.png",
"validUntil": 1640995200
},
{
"id": 3,
"name": "1天无限卡体验",
"description": "1天无限阅读体验卡",
"type": "experience_card",
"duration": 1,
"status": 0, // 已兑换或不可兑换
"cost": 20,
"icon": "https://example.com/card3.png",
"validUntil": 1640995200
}
],
"userPoints": 150, // 用户当前积分
"weeklyPoints": 80, // 本周获得积分
"nextWeekReset": 1641599999 // 下周重置时间
}
}

兑换体验卡

POST https://i.weread.qq.com/weekly/exchange

兑换指定的体验卡奖励。

请求参数:

javascript
1
2
3
4
5
6
{
"awardLevelId": 1, // 要兑换的奖励ID
"awardChoiceType": 1, // 奖励选择类型 (1表示兑换体验卡)
"isExchangeAward": 1, // 是否兑换奖励 (1表示兑换)
"pf": "weread_wx-2001-iap-2001-iphone" // 平台标识
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
{
"errcode": 0,
"data": {
"success": true,
"awardId": 1,
"awardName": "7天无限卡体验",
"exchangeTime": 1640995200,
"validUntil": 1641599999,
"remainingPoints": 50 // 兑换后剩余积分
}
}

错误响应:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"errcode": -3001,
"errmsg": "积分不足"
}

{
"errcode": -3002,
"errmsg": "奖励已兑换"
}

{
"errcode": -3003,
"errmsg": "奖励已过期"
}

礼品服务 API

购买并发送礼品

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

购买并发送礼品给其他用户。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
{
"bookId": "book_123456", // 书籍ID
"giftMsg": "送你一本好书", // 礼品消息
"audioId": "audio_123", // 音频ID
"duration": 3600, // 时长(秒)
"payType": 1, // 支付类型(可选)
"price": 29.99, // 价格
"count": 1, // 数量(可选)
"source": "app", // 来源
"pf": "android", // 平台
"zoneId": "zone_001", // 区域ID
"release": 1 // 发布版本
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"errcode": 0,
"data": {
"giftId": "gift_789012",
"orderId": "order_345678",
"status": "success",
"message": "礼品发送成功",
"recipient": {
"userId": "user_456",
"nickname": "接收者昵称"
},
"gift": {
"bookId": "book_123456",
"title": "书籍标题",
"cover": "封面URL",
"price": 29.99
},
"sendTime": 1640995200000
}
}

发送免费推广礼品

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

发送免费的推广礼品。

请求参数:

javascript
1
2
3
4
5
6
7
{
"bookId": "book_123456", // 书籍ID
"giftMsg": "免费体验推荐", // 礼品消息
"audioId": "audio_123", // 音频ID
"duration": 1800, // 时长(秒)
"type": 1 // 推广类型
}

查看礼品历史

GET /gift/list

获取用户的礼品历史记录。

请求参数 (Query):

javascript
1
2
3
{
"synckey": 123456789 // 同步键
}

响应示例:

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
{
"errcode": 0,
"data": {
"gifts": [
{
"giftId": "gift_789012",
"bookId": "book_123456",
"title": "书籍标题",
"cover": "封面URL",
"giftMsg": "送你一本好书",
"sender": {
"userId": "user_123",
"nickname": "发送者昵称",
"avatar": "头像URL"
},
"recipient": {
"userId": "user_456",
"nickname": "接收者昵称",
"avatar": "头像URL"
},
"price": 29.99,
"status": "received",
"sendTime": 1640995200000,
"receiveTime": 1640995300000,
"isRead": true
}
],
"synckey": 123456790,
"hasMore": false,
"unreadCount": 2
}
}

查看礼品详情

GET /gift/detail

查看指定礼品的详细信息。

请求参数 (Query):

javascript
1
2
3
{
"giftId": "gift_789012" // 礼品ID
}

查看书籍礼品信息

GET /gift/view

查看指定书籍的礼品相关信息。

请求参数 (Query):

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

更新礼品信息

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

更新已发送礼品的信息。

请求参数:

javascript
1
2
3
4
5
6
{
"giftId": "gift_789012", // 礼品ID
"giftMsg": "更新后的礼品消息", // 新的礼品消息
"audioId": "audio_new", // 新的音频ID
"duration": 7200 // 新的时长
}

删除礼品记录

GET /gift/delete

删除指定的礼品历史记录。

请求参数 (Query):

javascript
1
2
3
{
"giftId": "gift_789012" // 要删除的礼品ID
}

清除未读标记

GET /gift/list

清除所有礼品的未读标记。

请求参数 (Query):

javascript
1
2
3
{
"markall": "1" // 标记所有为已读
}

用户 API

用户相关的 API 接口,包括用户资料管理、设备管理和账户操作。

获取用户资料

GET /user/profile

获取用户的详细资料信息,包括阅读统计、关注数据等。

请求参数 (Query):

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
{
"articleBookId": 1,
"articleCount": 1,
"articleReadCount": 1,
"articleSubscribeCount": 1,
"articleWordCount": 1,
"audioCommentedCount": 1,
"audioCount": 1,
"audioLikedCount": 1,
"audioListenCount": 1,
"authorTotalReadCount": 1,
"bookReviewCount": 1,
"booklistCollectCount": 1,
"booklistCount": 1,
"buyCount": 1,
"canExchange": 1,
"canExchangeDay": 1,
"continueReadDays": 1,
"curMonthReadTime": 1,
"followerCount": 1,
"followerListCount": 1,
"followingCount": 1,
"followingListCount": 1,
"gameInfo": 1,
"gender": 1,
"likeBookCount": 1,
"location": 1,
"medalInfo": 1,
"noteBookCount": 1,
"readCount": 1,
"readHistory": 1,
"readingTeam": 1,
"reviewCommentedCount": 1,
"reviewCount": 1,
"reviewLikedCount": 1,
"signature": 1,
"totalLikedCount": 1,
"totalNoteCount": 1,
"totalReadingTime": 1,
"unfinishOrderCount": 1,
"vDesc": 1
}

请求头:

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

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"user": {
"name": "用户昵称",
"avatar": "头像URL",
"signature": "个人签名",
"gender": 1,
"location": "地理位置"
},
"readingStats": {
"readCount": 150,
"totalReadingTime": 86400,
"continueReadDays": 30,
"curMonthReadTime": 7200
},
"socialStats": {
"followerCount": 100,
"followingCount": 50,
"totalLikedCount": 200
}
}

获取其他用户资料

GET /user/profile (查看他人资料)

获取指定用户的详细资料信息,支持查看其他用户的公开信息。

请求参数 (Query):

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
{
"userVid": "target_user_vid", // 目标用户 VID
"gender": 1, // 性别信息
"signature": 1, // 签名信息
"vDesc": 1, // 用户描述
"location": 1, // 位置信息
"totalReadingTime": 1, // 总阅读时长
"currentReadingTime": 1, // 当前阅读时长
"finishedBookCount": 1, // 完成书籍数量
"followerCount": 1, // 粉丝数量
"followingCount": 1, // 关注数量
"buyCount": 1, // 购买数量
"reviewCount": 1, // 书评数量
"reviewLikedCount": 1, // 书评点赞数
"sameFollowing": 1, // 共同关注
"reviewCommentedCount": 1, // 书评评论数
"likeBookCount": 1, // 喜欢书籍数
"isFollowing": 1, // 是否关注
"isFollower": 1, // 是否粉丝
"isBlackMe": 1, // 是否拉黑我
"isInBlackList": 1, // 是否在黑名单
"bookReviewCount": 1, // 书评数量
"noteBookCount": 1, // 笔记书籍数
"exchangedMoney": 1, // 兑换金额
"recentReadingBooks": 1, // 最近阅读书籍
"booklistCount": 1, // 书单数量
"booklistCollectCount": 1, // 书单收藏数
"articleBookId": 1, // 文章书籍 ID
"articleCount": 1, // 文章数量
"articleDraftCount": 1, // 文章草稿数
"articleReadCount": 1, // 文章阅读数
"articleSubscribeCount": 1, // 文章订阅数
"articleWordCount": 1, // 文章字数
"audioCount": 1, // 音频数量
"audioListenCount": 1, // 音频收听数
"audioLikedCount": 1, // 音频点赞数
"audioCommentedCount": 1, // 音频评论数
"totalLikedCount": 1, // 总点赞数
"mpAccount": 1, // 公众号账户
"canExchange": 1, // 可兑换
"canExchangeDay": 1, // 可兑换天数
"isSubscribing": 1, // 是否订阅
"hideMe": 1, // 隐藏我
"wechatFriendCount": 1, // 微信好友数
"wechatFriendSubscribeCount": 1, // 微信好友订阅数
"isHide": 1, // 是否隐藏
"readingTeam": 1, // 阅读团队
"readHistory": 1, // 阅读历史
"gameInfo": 1, // 游戏信息
"authorTotalReadCount": 1, // 作者总阅读数
"unfinishOrderCount": 1, // 未完成订单数
"unfinishShoppingCartCount": 1, // 未完成购物车数
"totalNoteCount": 1, // 总笔记数
"medalInfo": 1, // 勋章信息
"profileVisibleToAll": 1, // 资料对所有人可见
"curMonthReadTime": 1, // 当月阅读时长
"continueReadDays": 1, // 连续阅读天数
"readCount": 1 // 阅读数量
}

邀请相关功能

获取邀请信息

GET /user/profile (邀请版本)

获取用户邀请相关信息,这是 /user/profile 端点的一个特殊用法。

请求参数 (Query):

javascript
1
2
3
4
5
6
7
8
{
"totalReadingTime": 1, // 总阅读时长
"finishedBookCount": 1, // 完成书籍数量
"exchangedMoney": 1, // 兑换金额
"recentReadingBooks": 1, // 最近阅读书籍
"registTime": 1, // 注册时间
"gender": 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
5
6
7
8
9
10
{
"errcode": 0,
"data": {
"inviteCode": "ABC123",
"inviteCount": 5,
"inviteReward": 100,
"canInvite": true,
"inviteUrl": "https://weread.qq.com/invite/ABC123"
}
}

设备会话管理

获取设备会话列表

GET /device/sessionlist

获取指定设备的会话列表。

请求参数 (Query):

javascript
1
2
3
4
{
"deviceId": "device_id_here",
"onlyCnt": "1"
}

移除设备会话

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

移除指定的设备会话。

请求参数:

javascript
1
2
3
4
{
"removeDeviceIds": ["device1", "device2"],
"currentDeviceId": "current_device"
}

手机号检查

GET /phoneCheck

检查手机号是否有效。

请求参数 (Query):

javascript
1
2
3
{
"tel": "13800138000"
}

账户注销

注销账户

GET /deregister

注销用户账户。

用户配置

更新用户签名

POST https://i.weread.qq.com/user/signature

更新用户签名和个人信息。

请求参数:

javascript
1
2
3
4
5
6
7
{
"content": "个人签名内容",
"vDesc": "个人描述",
"nick": "昵称",
"region": "地区",
"gender": 1 // 1: 男, 2: 女, 0: 未知
}

恢复微信头像

POST https://i.weread.qq.com/user/signature

恢复或清除微信头像。

请求参数:

javascript
1
2
3
{
"clearAvatar": 1 // 1: 清除头像, 0: 恢复头像
}

同步配置

GET /config

同步用户配置信息。

请求参数 (Query):

javascript
1
2
3
{
"synckey": 123456789 // 同步键
}

更新配置

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

更新用户账户配置。

请求参数:

javascript
1
2
3
4
5
6
7
8
{
"accountsets": {
// 账户设置对象
"setting1": "value1",
"setting2": "value2"
},
"deviceId": "device_id_here"
}

故事流 API

微信读书故事流相关的 API 接口,包括故事流内容获取、互动、举报等功能。

故事流阅读提示

POST https://i.weread.qq.com/story/benefitrecv

获取故事流的阅读收益提示,用于激励用户阅读。

请求参数:

javascript
1
2
3
4
5
6
{
"reviewId": "review_123456", // 书评ID
"random": "random_string", // 随机字符串
"timestamp": "1640995200", // 时间戳
"sign": "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
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
{
"errcode": 0,
"data": {
"benefits": [
{
"type": "reading_time",
"title": "阅读时长奖励",
"description": "今日阅读30分钟,获得10阅读币",
"reward": {
"type": "coin",
"amount": 10
},
"icon": "https://example.com/time_icon.png"
},
{
"type": "story_interaction",
"title": "故事互动奖励",
"description": "参与故事讨论,获得5经验值",
"reward": {
"type": "exp",
"amount": 5
},
"icon": "https://example.com/interaction_icon.png"
}
],
"totalRewards": {
"coins": 10,
"exp": 5
},
"nextTip": {
"time": 1641081600,
"message": "明天继续阅读可获得更多奖励"
}
}
}

故事流举报

POST https://i.weread.qq.com/storyfeed/report

举报故事流中的不当内容。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
{
"type": 1, // 举报类型 (1: 垃圾信息, 2: 不当内容, 3: 侵权)
"metas": [ // 举报元数据
{
"storyId": "story_123",
"reason": "spam", // 举报原因: spam, inappropriate, copyright
"description": "垃圾内容", // 详细描述
"evidence": [ // 证据链接(可选)
"https://example.com/evidence1.jpg"
]
}
]
}

请求头:

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": {
"reportId": "report_789012",
"status": "submitted",
"message": "举报已提交,我们会在24小时内处理",
"processTime": "24小时内"
}
}

故事流管理

故事流内容类型

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const StoryTypes = {
BOOK_REVIEW: 'book_review', // 书评故事
READING_NOTE: 'reading_note', // 阅读笔记
BOOK_QUOTE: 'book_quote', // 书籍引用
READING_GOAL: 'reading_goal', // 阅读目标
BOOK_RECOMMENDATION: 'book_rec' // 书籍推荐
};

const ReportReasons = {
SPAM: 'spam', // 垃圾信息
INAPPROPRIATE: 'inappropriate', // 不当内容
COPYRIGHT: 'copyright', // 侵权内容
HARASSMENT: 'harassment', // 骚扰内容
FAKE_INFO: 'fake_info' // 虚假信息
};

书架 API

微信读书书架服务相关的 API 接口,包括书架管理、归档、置顶、私密书籍等功能。

书架基础操作

添加书籍到书架

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

将书籍或专辑添加到书架。

请求参数:

javascript
1
2
3
4
5
6
{
"bookIds": ["book1", "book2"], // 书籍ID数组
"albumIds": ["album1", "album2"], // 专辑ID数组
"promoteId": "promote_id_here", // 推广ID
"type": 1 // 类型
}

响应示例:

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

从书架删除书籍

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

从书架中删除指定的书籍、专辑或归档。

请求参数:

javascript
1
2
3
4
5
{
"bookIds": ["book1", "book2"], // 要删除的书籍ID数组
"albumIds": ["album1"], // 要删除的专辑ID数组
"archiveIds": [1, 2] // 要删除的归档ID数组
}

置顶书籍

POST https://i.weread.qq.com/shelf/top

将书籍或专辑置顶到书架顶部。

请求参数:

javascript
1
2
3
4
5
6
{
"bookIds": ["book1", "book2"], // 书籍ID数组
"albumIds": ["album1"], // 专辑ID数组
"archiveIds": [1, 2], // 归档ID数组
"isDel": false // 是否取消置顶
}

书架归档管理

创建归档

POST https://i.weread.qq.com/shelf/archive

创建新的归档分类并将书籍添加到其中。

请求参数:

javascript
1
2
3
4
5
6
{
"bookIds": ["book1", "book2"], // 要归档的书籍ID数组
"albumIds": ["album1"], // 要归档的专辑ID数组
"archiveId": 0, // 归档ID(0表示创建新归档)
"name": "科技类书籍" // 归档名称
}

响应示例:

javascript
1
2
3
4
5
6
7
8
9
10
{
"errcode": 0,
"success": true,
"data": {
"archiveId": 123,
"name": "科技类书籍",
"bookCount": 2,
"createTime": 1640995200
}
}

重命名归档

POST https://i.weread.qq.com/shelf/archive

重命名现有的归档分类。

请求参数:

javascript
1
2
3
4
5
6
7
{
"archiveId": 123, // 归档ID
"name": "新的归档名称", // 新名称
"bookIds": ["book1", "book2"], // 归档中的书籍ID数组
"lectureBookIds": ["lecture1"], // 讲座书籍ID数组
"albumIds": ["album1"] // 专辑ID数组
}

删除归档

POST https://i.weread.qq.com/shelf/deleteArchive

删除指定的归档分类。

请求参数:

javascript
1
2
3
4
{
"archiveId": 123, // 要删除的归档ID
"removeBooks": 1 // 是否同时删除归档中的书籍
}

书架特殊功能

添加私密书籍

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

将书籍设置为私密状态。

请求参数:

javascript
1
2
3
4
5
{
"bookIds": ["book1", "book2"], // 书籍ID数组
"albumIds": ["album1"], // 专辑ID数组
"private": 1 // 1: 设为私密, 0: 取消私密
}

书架同步

同步书架数据

GET /shelf/sync

同步书架数据,获取最新的书架状态。

请求参数 (Query):

javascript
1
2
3
4
5
6
7
{
"synckey": 123456789, // 同步键
"teenmode": 0, // 青少年模式
"album": 1, // 是否包含专辑
"onlyBookid": 0, // 是否只返回书籍ID
"localBookCount": 100 // 本地书籍数量
}

响应示例:

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": {
"books": [
{
"bookId": "123456",
"title": "书籍标题",
"author": "作者",
"cover": "封面URL",
"progress": 0.5,
"isTop": false,
"isPrivate": false,
"archiveId": 0,
"addTime": 1640995200,
"updateTime": 1640995300
}
],
"archives": [
{
"archiveId": 123,
"name": "我的收藏",
"bookCount": 5,
"createTime": 1640995200
}
],
"synckey": 123456790,
"hasMore": false
}
}

获取书架数据信息

POST https://i.weread.qq.com/shelf/syncbook

获取指定书籍和专辑的书架数据信息。

请求参数:

javascript
1
2
3
4
{
"bookIds": ["book1", "book2"], // 书籍ID数组
"albumIds": ["album1", "album2"] // 专辑ID数组
}

同步书架信息

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

同步书架中书籍的详细信息。

方式一:同步指定书籍

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
async function syncBookShelfInfo(bookIds, vid, skey) {
const response = await fetch('https://i.weread.qq.com/book/shelfinfos', {
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({
bookIds: bookIds
})
});

return await response.json();
}

方式二:同步用户书架信息

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
async function syncShelfInfo(userVid, forceBookIds = [], vid, skey) {
const response = await fetch('https://i.weread.qq.com/book/shelfinfos', {
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({
vid: userVid,
forceBookIds: forceBookIds
})
});

return await response.json();
}

实用工具 API

微信读书实用工具相关的 API 接口,包括 OCR 扫描、通知管理、公众号文章等功能。

OCR 扫描 API

书籍扫描识别

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

通过图片 OCR 识别书籍信息。

请求参数:

javascript
1
2
3
4
5
6
7
{
"picUrl": "https://example.com/book_cover.jpg", // 图片URL
"scene": 1, // 扫描场景
"bookId": "book_123456", // 书籍ID(可选)
"sid": "session_id_here", // 会话ID
"reviewId": "review_123" // 书评ID(可选)
}

响应示例:

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
{
"errcode": 0,
"data": {
"bookInfo": {
"bookId": "book_123456",
"title": "人工智能简史",
"author": "张三",
"isbn": "9787111234567",
"publisher": "机械工业出版社",
"publishDate": "2023-01-01",
"cover": "https://example.com/cover.jpg",
"description": "这是一本关于人工智能发展历程的书籍",
"category": "科技",
"price": 59.00,
"pageCount": 320
},
"confidence": 0.95, // 识别置信度
"scanResult": {
"textBlocks": [ // 识别的文本块
{
"text": "人工智能简史",
"position": {
"x": 100,
"y": 50,
"width": 200,
"height": 30
},
"confidence": 0.98
}
],
"detectedLanguage": "zh-CN", // 检测到的语言
"orientation": 0 // 图片方向
},
"recommendations": [ // 推荐的相关书籍
{
"bookId": "book_789012",
"title": "机器学习实战",
"author": "李四",
"similarity": 0.85
}
]
}
}

扫描场景说明:

  • scene: 1 - 书籍封面扫描
  • scene: 2 - 书籍内页扫描
  • scene: 3 - 书籍条形码扫描
  • scene: 4 - 文字内容扫描

公众号文章 API

阅读公众号文章

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

记录公众号文章的阅读行为。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
{
"reviewId": "review_123456", // 书评ID
"url": "https://mp.weixin.qq.com/s/xxx", // 文章URL
"title": "文章标题", // 文章标题
"thumbUrl": "https://example.com/thumb.jpg", // 缩略图URL
"account": "公众号名称", // 公众号账号名
"isDelete": 0, // 是否删除 (0: 否, 1: 是)
"bookId": "mp_article_123" // 文章ID
}

响应示例:

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
{
"errcode": 0,
"data": {
"readId": "read_789012",
"articleInfo": {
"bookId": "mp_article_123",
"title": "文章标题",
"url": "https://mp.weixin.qq.com/s/xxx",
"thumbUrl": "https://example.com/thumb.jpg",
"account": "公众号名称",
"publishTime": 1640995200000,
"readTime": 1640995300000,
"readProgress": 0.5,
"wordCount": 2500,
"estimatedReadTime": 600
},
"mpInfo": {
"mpId": "mp_123",
"name": "公众号名称",
"avatar": "https://example.com/avatar.jpg",
"description": "公众号简介",
"verified": true,
"followerCount": 100000
},
"readStats": {
"totalReadTime": 3600,
"articlesRead": 25,
"favoriteCount": 5
}
}
}

更新阅读时间

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

更新公众号文章的阅读时间记录。

请求参数:

javascript
1
2
3
{
"bookId": "mp_article_123" // 文章ID
}

获取视频封面

GET /video/cover

获取企鹅号视频的封面信息。

请求参数 (Query):

javascript
1
2
3
{
"bookId": "video_123456" // 视频ID
}

响应示例:

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
{
"errcode": 0,
"data": {
"cover": "https://example.com/video_cover.jpg",
"title": "视频标题",
"duration": 1800, // 视频时长(秒)
"resolution": "1920x1080", // 分辨率
"size": 52428800, // 文件大小(字节)
"format": "mp4", // 视频格式
"thumbnails": [ // 缩略图列表
{
"time": 0,
"url": "https://example.com/thumb_0.jpg"
},
{
"time": 300,
"url": "https://example.com/thumb_300.jpg"
}
],
"videoInfo": {
"bitrate": 2000, // 码率
"fps": 30, // 帧率
"codec": "h264" // 编码格式
}
}
}

获取公众号付费信息

POST https://i.weread.qq.com/mp/getpaidinfo

获取公众号文章的付费信息。

请求参数:

javascript
1
2
3
4
5
6
7
{
"urls": [ // 文章URL列表
"https://mp.weixin.qq.com/s/xxx",
"https://mp.weixin.qq.com/s/yyy"
],
"need_content": true // 是否需要内容
}

响应示例:

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": {
"paidInfoList": [
{
"url": "https://mp.weixin.qq.com/s/xxx",
"isPaid": true,
"price": 9.9,
"currency": "CNY",
"paymentStatus": "paid",
"purchaseTime": 1640995200000,
"validUntil": 1672531200000,
"content": {
"title": "付费文章标题",
"summary": "文章摘要内容...",
"wordCount": 3500,
"readTime": 8
},
"author": {
"mpId": "mp_123",
"name": "公众号名称",
"avatar": "https://example.com/mp_avatar.jpg"
}
}
],
"totalCount": 2,
"totalPaidAmount": 19.8
}
}

获取公众号书评ID

POST https://i.weread.qq.com/mp/getreviewid

通过URL获取公众号文章的书评ID。

请求参数:

javascript
1
2
3
4
5
6
{
"urls": [ // 文章URL列表
"https://mp.weixin.qq.com/s/xxx",
"https://mp.weixin.qq.com/s/yyy"
]
}

响应示例:

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": {
"reviewIds": [
{
"url": "https://mp.weixin.qq.com/s/xxx",
"reviewId": "mp_review_123456",
"bookId": "mp_article_789",
"hasReview": true,
"reviewCount": 25,
"lastReviewTime": 1640995200000
},
{
"url": "https://mp.weixin.qq.com/s/yyy",
"reviewId": null,
"bookId": "mp_article_790",
"hasReview": false,
"reviewCount": 0,
"lastReviewTime": null
}
],
"totalUrls": 2,
"validUrls": 2
}
}

同步公众号好友书评

GET /review/list

获取好友对公众号文章的书评。

请求参数 (Query):

javascript
1
2
3
4
5
6
7
{
"listtype": 1, // 列表类型
"refMpReviewId": "mp_review_123", // 参考公众号书评ID
"synckey": 123456789, // 同步键
"listmode": 1, // 列表模式
"bookId": "mp_article_456" // 公众号文章ID
}

同步我的公众号书评

GET /review/list

获取我对公众号文章的书评。

请求参数 (Query):

javascript
1
2
3
4
5
6
7
{
"listtype": 2, // 列表类型
"mine": 1, // 我的书评标识
"bookId": "mp_article_456", // 公众号文章ID
"synckey": 123456789, // 同步键
"listmode": 1 // 列表模式
}

同步公众号热门书评

GET /review/list

获取公众号文章的热门书评。

请求参数 (Query):

javascript
1
2
3
4
5
6
7
{
"listtype": 3, // 列表类型(热门)
"refMpReviewId": "mp_review_123", // 参考公众号书评ID
"synckey": 123456789, // 同步键
"listmode": 1, // 列表模式
"bookId": "mp_article_456" // 公众号文章ID
}

字典服务 API

获取字典列表

GET /dictionary

获取可用的字典列表。

请求参数 (Query):

javascript
1
2
3
{
"synckey": 123456789 // 同步键
}

响应示例:

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
{
"errcode": 0,
"data": {
"dictionaries": [
{
"dictId": "dict_english",
"name": "英汉词典",
"description": "权威英汉双语词典",
"language": "en-zh",
"version": "2.1.0",
"wordCount": 150000,
"updateTime": 1640995200000,
"isDefault": true,
"isOffline": true,
"size": 52428800, // 字典大小(字节)
"downloadUrl": "https://example.com/dict_english.db",
"features": [
"pronunciation", // 发音
"example_sentences", // 例句
"etymology", // 词源
"synonyms" // 同义词
]
},
{
"dictId": "dict_chinese",
"name": "现代汉语词典",
"description": "现代汉语规范词典",
"language": "zh",
"version": "1.8.0",
"wordCount": 80000,
"updateTime": 1640995100000,
"isDefault": false,
"isOffline": true,
"size": 31457280,
"downloadUrl": "https://example.com/dict_chinese.db",
"features": [
"pinyin", // 拼音
"stroke_order", // 笔画顺序
"radical", // 部首
"idioms" // 成语
]
}
],
"totalCount": 5,
"synckey": 123456790,
"lastUpdateTime": 1640995200000
}
}

查询单词

POST https://i.weread.qq.com/dict/query

查询指定单词的详细信息。

请求参数:

javascript
1
2
3
{
"word": "artificial" // 要查询的单词
}

响应示例:

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
89
90
91
92
93
94
95
96
97
98
{
"errcode": 0,
"data": {
"word": "artificial",
"queryTime": 1640995200000,
"results": [
{
"dictId": "dict_english",
"dictName": "英汉词典",
"entries": [
{
"word": "artificial",
"phonetic": {
"uk": "/ˌɑːtɪˈfɪʃl/",
"us": "/ˌɑːrtɪˈfɪʃl/",
"audioUrl": "https://example.com/audio/artificial.mp3"
},
"partOfSpeech": "adjective",
"definitions": [
{
"meaning": "人造的;人工的;假的",
"englishMeaning": "made or produced by human beings rather than occurring naturally",
"examples": [
{
"sentence": "artificial intelligence",
"translation": "人工智能",
"source": "technology"
},
{
"sentence": "artificial flowers",
"translation": "人造花",
"source": "daily"
}
],
"level": "intermediate"
}
],
"synonyms": [
{
"word": "synthetic",
"meaning": "合成的"
},
{
"word": "man-made",
"meaning": "人造的"
}
],
"antonyms": [
{
"word": "natural",
"meaning": "自然的"
},
{
"word": "genuine",
"meaning": "真正的"
}
],
"etymology": {
"origin": "Latin artificialis",
"description": "来自拉丁语 artificialis,意为'技艺的,人工的'"
},
"frequency": {
"rank": 2500,
"level": "common"
},
"relatedWords": [
{
"word": "artificially",
"partOfSpeech": "adverb",
"meaning": "人工地"
},
{
"word": "artificiality",
"partOfSpeech": "noun",
"meaning": "人工性"
}
]
}
]
}
],
"suggestions": [
"artificial intelligence",
"artificial neural network",
"artificial life"
],
"searchHistory": [
{
"word": "intelligence",
"searchTime": 1640995100000
},
{
"word": "machine",
"searchTime": 1640995000000
}
]
}
}

通知管理 API

获取通知列表

GET /mine/notifications

获取用户的通知列表。

请求参数 (Query):

javascript
1
2
3
4
5
{
"synckey": 123456789, // 同步键
"maxIdx": 100, // 最大索引
"showAll": 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
{
"errcode": 0,
"data": {
"notifications": [
{
"notifId": "notif_123456",
"type": "friend_request",
"title": "好友请求",
"content": "用户张三想要添加您为好友",
"sender": {
"userId": "user_789",
"nickname": "张三",
"avatar": "https://example.com/avatar1.jpg"
},
"relatedData": {
"userId": "user_789",
"requestId": "req_456"
},
"isRead": false,
"createTime": 1640995200000,
"updateTime": 1640995200000,
"actions": [
{
"type": "accept",
"text": "接受",
"url": "/friend/accept"
},
{
"type": "reject",
"text": "拒绝",
"url": "/friend/reject"
}
]
},
{
"notifId": "notif_123457",
"type": "book_recommendation",
"title": "书籍推荐",
"content": "根据您的阅读偏好,为您推荐《机器学习实战》",
"relatedData": {
"bookId": "book_789012",
"title": "机器学习实战",
"cover": "https://example.com/cover2.jpg"
},
"isRead": true,
"createTime": 1640995100000,
"updateTime": 1640995150000,
"actions": [
{
"type": "view",
"text": "查看详情",
"url": "/book/detail"
}
]
}
],
"synckey": 123456790,
"maxIdx": 102,
"hasMore": true,
"unreadCount": 5
}
}

标记通知已读

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

将指定的通知标记为已读。

请求参数:

javascript
1
2
3
4
{
"notifIds": "notif_123456,notif_123457", // 通知ID列表(逗号分隔)
"synckey": 123456789 // 同步键
}

删除通知

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

删除指定的通知。

请求参数:

javascript
1
2
3
{
"notifIds": "notif_123456,notif_123457" // 通知ID列表(逗号分隔)
}

取消书单通知

POST https://i.weread.qq.com/mine/cancelnotification

取消书单相关的通知。

请求参数:

javascript
1
2
3
4
{
"booklistId": "booklist_123456", // 书单ID
"open": 0 // 0: 取消通知, 1: 开启通知
}

取消书评通知

POST https://i.weread.qq.com/mine/cancelnotification

取消书评相关的通知。

请求参数:

javascript
1
2
3
4
{
"reviewId": "review_123456", // 书评ID
"open": 0 // 0: 取消通知, 1: 开启通知
}

阅读辅助工具

获取提醒词汇

GET /reading/RemindWords

获取阅读提醒词汇,用于阅读辅助和词汇学习。

请求头:

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
30
31
32
{
"errcode": 0,
"data": {
"remindWords": [
{
"word": "serendipity",
"meaning": "意外发现珍奇事物的能力",
"pronunciation": "/ˌserənˈdɪpəti/",
"category": "高级词汇",
"frequency": "低频",
"examples": [
"The discovery was pure serendipity.",
"这个发现纯属意外收获。"
]
},
{
"word": "ubiquitous",
"meaning": "无处不在的",
"pronunciation": "/juːˈbɪkwɪtəs/",
"category": "学术词汇",
"frequency": "中频",
"examples": [
"Smartphones are ubiquitous in modern society.",
"智能手机在现代社会无处不在。"
]
}
],
"totalCount": 50,
"updateTime": 1640995200,
"nextUpdate": 1641081600
}
}

短时阅读接收

POST https://i.weread.qq.com/shorttime/book/recv

接收短时阅读数据,用于快速阅读模式。

请求参数:

javascript
1
2
3
4
5
6
7
8
9
10
11
{
"bookId": "book_id_here", // 书籍ID
"readingMode": "speed", // 阅读模式: speed, normal, deep
"duration": 300, // 阅读时长(秒)
"chapterIds": ["ch1", "ch2"], // 章节ID列表
"settings": { // 阅读设置
"wordsPerMinute": 250, // 每分钟阅读字数
"autoScroll": true, // 自动滚动
"highlightKey": true // 高亮关键词
}
}

请求头:

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
17
18
19
20
21
{
"errcode": 0,
"data": {
"sessionId": "session_123456",
"readingStats": {
"wordsRead": 750,
"timeSpent": 300,
"comprehensionScore": 85,
"readingSpeed": 150
},
"keyPoints": [
"人工智能的发展历程",
"机器学习的基本原理",
"深度学习的应用场景"
],
"nextRecommendation": {
"chapterId": "ch3",
"estimatedTime": 240
}
}
}

云书搜索

云书搜索预热

POST https://i.weread.qq.com/cloudbooksearch/preheat

预热云书搜索功能,提高搜索响应速度。

请求参数:

javascript
1
2
3
4
5
6
{
"bookId": "book_id_here", // 书籍ID
"searchType": "content", // 搜索类型: content, title, author
"preloadChapters": 5, // 预加载章节数
"indexMode": "full" // 索引模式: full, partial, minimal
}

请求头:

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
{
"errcode": 0,
"data": {
"preheatId": "preheat_123456",
"status": "completed",
"indexedChapters": 20,
"totalChapters": 20,
"indexSize": "2.5MB",
"searchReady": true,
"estimatedSearchTime": "< 100ms"
}
}

音乐服务

获取QQ音乐信息

GET //open.music.qq.com/fcgi-bin/fcg_music_get_song_info_weixin.fcg

获取QQ音乐歌曲信息,用于阅读背景音乐功能。

请求参数 (Query):

javascript
1
2
3
4
5
6
7
8
9
{
"song_id": "song_123456", // 歌曲ID
"mid": "mid_string", // 音乐ID
"format": "json", // 返回格式
"app_id": "weread_app", // 应用ID
"app_key": "app_key_string", // 应用密钥
"device_id": "device_123", // 设备ID
"file_type": "mp3" // 文件类型
}

请求头:

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": {
"song": {
"songId": "song_123456",
"mid": "mid_string",
"title": "轻音乐 - 阅读时光",
"artist": "背景音乐",
"album": "阅读专辑",
"duration": 240,
"cover": "https://example.com/cover.jpg",
"playUrl": "https://music.qq.com/play/123456.mp3",
"quality": "128kbps",
"fileSize": "3.2MB"
},
"playInfo": {
"canPlay": true,
"needVip": false,
"playCount": 1000000,
"downloadUrl": "https://music.qq.com/download/123456.mp3"
}
}
}

安全与举报 API

微信读书安全与举报相关的 API 接口,包括用户举报、广告举报、内容审核等功能。

用户举报

举报用户

POST https://i.weread.qq.com/user/accuse

举报不当用户行为。

请求参数:

javascript
1
2
3
4
{
"accuseVid": 12345, // 被举报用户的 VID
"accuseTypes": [1, 2, 3] // 举报类型数组
}

举报类型说明:

javascript
1
2
3
4
5
6
7
8
9
10
const AccuseTypes = {
SPAM: 1, // 垃圾信息
HARASSMENT: 2, // 骚扰行为
INAPPROPRIATE_CONTENT: 3, // 不当内容
FAKE_ACCOUNT: 4, // 虚假账户
COPYRIGHT_VIOLATION: 5, // 版权侵犯
FRAUD: 6, // 欺诈行为
HATE_SPEECH: 7, // 仇恨言论
VIOLENCE: 8 // 暴力内容
};

请求头:

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": {
"reportId": "report_123456",
"status": "submitted",
"message": "举报已提交,我们会在24小时内处理"
}
}

广告举报

举报广告

POST https://i.weread.qq.com/ad/accuse

举报不当广告内容。

请求参数:

javascript
1
2
3
4
5
6
7
8
{
"vid": "user_vid", // 举报用户的 VID
"type": ["spam", "inappropriate"], // 举报类型数组
"bookId": "book_id", // 相关书籍ID
"adId": "ad_id", // 广告ID
"description": "举报描述", // 详细描述(可选)
"evidence": ["url1", "url2"] // 证据链接(可选)
}

举报类型说明:

javascript
1
2
3
4
5
6
7
8
9
const AdAccuseTypes = {
SPAM: 'spam', // 垃圾广告
INAPPROPRIATE: 'inappropriate', // 不当内容
MISLEADING: 'misleading', // 误导性广告
ADULT_CONTENT: 'adult_content', // 成人内容
VIOLENCE: 'violence', // 暴力内容
FRAUD: 'fraud', // 欺诈广告
COPYRIGHT: 'copyright' // 版权侵犯
};

请求头:

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": {
"reportId": "ad_report_789012",
"status": "submitted",
"message": "广告举报已提交"
}
}

内容举报

举报书评/评论

POST https://i.weread.qq.com/content/report

举报书评、评论等用户生成内容。

请求参数:

javascript
1
2
3
4
5
6
7
8
{
"contentType": "review", // 内容类型: review, comment, note
"contentId": "content_123", // 内容ID
"authorVid": "author_456", // 内容作者VID
"reportTypes": [1, 2], // 举报类型
"description": "举报描述", // 详细描述
"evidence": ["url1", "url2"] // 证据(可选)
}