# 接入说明

小程序在申请【文娱-网络小说】类目通过后,会自动开通以下API调用权限以及阅读器插件调用权限。

# 作品管理

# 说明

  1. 每个作品均有编辑版、发布版两个版本。创建作品、编辑作品、上传章节、批量上传章节、删除章节只会更新编辑版的作品信息。作品信息编辑后需要重新提审,并且仅当所有信息审核通过后,才会更新作品的发布版信息。
  2. 阅读器插件只能获取到发布版的作品信息。

# 创建作品

该接口用于创建作品(小说)。

  1. 支持传入作品提供方主键用于去重。
  2. 支持两种章节排序方式
    • 追加(默认方式):新上传章节会追加到章节列表的最后,可调用“编辑作品”或“调整章节顺序”接口更改章节位置。
    • seq 递增:上传章节时需要额外带上 seq 字段,根据章节 seq 从小到大进行稳定排序调整章节位置。
  3. 封面图支持的文件格式:jpg、jpeg、png。建议尺寸 600x800 像素。
  4. 题材关键词、精彩片段用于平台推荐场景。精彩片段需为本书内容。

# 调用方式

# HTTPS 调用

POST https://api.weixin.qq.com/wxa/book/createbook?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken 或者 authorizer_access_token
title string 作品名,示例值:"斗破苍穹"。长度限制1-30字。
intro string 作品简介。长度限制1-500字。
cover_media_id string 封面图 media_id,通过新增临时素材接口上传得到
author string 作者名。长度限制1-100字。
first_category_id number 一级类型id。可选类型见小说作品类型
second_category_id number 二级类型id
third_category_id number 三级类型id
complete_status number 完结状态,1:连载中,2:已完结
original_id string 提供方作品主键,可用于去重。长度限制0-255字节。
chapter_order_method number 章节排序方式,0:追加,1:seq 递增。默认值:0。
custom_info string 自定义信息。长度限制0-128字节。
keyword_list array<string> 题材关键词。最多传入3个关键词,每个关键词长度限制1-4字。
awesome_paragraph string 精彩片段。需为本书内容,长度限制400-1000字。

# 返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误原因
book_id string 作品id。非定长,不超过 64 字节。

# 调用示例

# 请求数据示例

{
    "title": "香蕉牛奶",
    "intro": "香蕉牛奶的奇幻之旅。",
    "cover_media_id": "xxx",
    "author": "香蕉和牛奶",
    "first_category_id": 10001,
    "second_category_id": 10002,
    "third_category_id": 10003,
    "complete_status": 1
}

# 返回数据示例

{
    "errcode": 0,
    "errmsg": "ok",
    "book_id": "A1b2C3d4"
}

# 编辑作品

该接口用于编辑作品编辑版的基础信息、章节顺序、分卷信息,不直接影响发布版,需要提审通过后才会更新发布版。

# 注意事项

  1. 除了 book_id 必填以外,其余字段是需要修改才设置。
  2. 若要修改作品类型,必须同时传入三级类型id。
  3. 审核中的作品不支持修改信息。
  4. 作品若需要分卷,则所有章节都需要被划入某个分卷,不能有某个章节未被划入分卷。
  5. 创建/删除章节后,需要主动修改作品分卷信息,否则无法提审。
  6. 分卷管理涉及两个字段 need_volumevolume_listneed_volume 不设置时为不修改分卷;need_volume 设置为 true 时表示需要用 volume_list 来修改作品分卷;need_volume 设置为 false 时表示作品不需要分卷,会清除当前作品的分卷信息。
  7. 分卷列表里需要按照分卷顺序传入参数,即第一卷的信息需要在第二卷之前,否则会报错。
  8. 分卷信息里的章节范围为左闭右闭,即包含 start_indexend_index 对应章节。第一卷的 start_index 应等于 0,后续每一卷的 start_index 应等于前一卷的 end_index + 1,最后一卷的 end_index 应等于作品章节总数 - 1。不同分卷的章节范围不能重叠,且合并所有分卷信息的区间应等于 [0, 章节总数 - 1]。
  9. 章节排序方式切换规则:从“追加”调整为“seq 递增”不保留当前章节顺序,自动按照章节 seq 重新排序;从“seq 递增”调整为“追加”会保留当前章节顺序,不清除章节 seq 信息。
  10. 题材关键词、精彩片段用于平台推荐场景。精彩片段需为本书内容。

# 调用方式

# HTTPS 调用

POST https://api.weixin.qq.com/wxa/book/updatebook?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
book_id string 作品id
title string 作品名。长度限制1-30字。
intro string 作品简介。长度限制1-500字。
cover_media_id string 封面图 media_id,通过 新增临时素材上传得到。
author string 作者名。长度限制1-100字。
first_category_id number 一级类型id。可选类型见 小说作品类型
second_category_id number 二级类型id
third_category_id number 三级类型id
complete_status number 完结状态,1:连载中,2:已完结
chapter_id_list array<string> 按照预期顺序传入章节id
need_volume bool 是否需要分卷
volume_list array<Volume> 分卷信息
chapter_order_method number 章节排序方式,0:追加,1:seq 递增
custom_info string 自定义信息。长度限制0-128字节。
update_keyword bool 是否更新题材关键词
keyword_list array<string> 题材关键词。最多传入3个关键词,每个关键词长度限制1-4字。
awesome_paragraph string 精彩片段。需为本书内容,长度限制400-1000字。

Volume

属性 类型 必填 说明
volume_title string 分卷名。长度限制1-100字。
start_index number 分卷起始章节下标,取值范围 [0, 章节总数)
end_index number 分卷截止章节下标,取值范围 [起始章节下标, 章节总数)

# 返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误原因

# 调用示例

# 请求数据示例

{
    "book_id": "A1b2C3d4",
    "complete_status": 2,
    "need_volume": true,
    "volume_list": [
        {
            "volume_title": "第一卷",
            "start_index": 0,
            "end_index": 2
        },
        {
            "volume_title": "第二卷",
            "start_index": 2,
            "end_index": 5
        }
    ]
}

# 返回数据示例

{
    "errcode": 0,
    "errmsg": "ok"
}

# 删除作品

该接口用于删除作品,同时作用于编辑版和发布版。

# 注意事项

  1. 删除作品后,阅读器无法在拉起小说阅读,请谨慎操作。
  2. 删除作品会同步删除与该本书相关的所有授权关系。
  3. 审核中的作品不支持删除。

# 调用方式

# HTTPS 调用

POST https://api.weixin.qq.com/wxa/book/deletebook?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken 或者 authorizer_access_token
book_id string 作品id

# 返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误原因

# 调用示例

# 请求数据示例

{
    "book_id": "A1b2C3d4"
}

# 返回数据示例

{
    "errcode": 0,
    "errmsg": "ok",
}

# 获取作品列表

该接口用于获取所有作品列表,分为发布版列表和编辑版列表。

发布版列表只包括审核通过的作品。
编辑版列表包括所有审核状态的作品的最新信息。

例如:某个作品审核通过后再次修改作品名,并且未提审。该接口获取的发布版列表返回的是该作品上一次审核通过的作品名,而编辑版列表返回的是修改后的作品名。

# 注意事项

  1. offset + limit 分页方式在作品数量超过10万时会失败,建议使用 last_id + limit 分页方式。

# 调用方式

# HTTPS 调用

POST 
https://api.weixin.qq.com/wxa/book/listbook?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
limit number 分页拉取的最大返回结果数。取值范围 1-100,默认值:100
offset number 分页拉取的起始偏移量,默认值:0。offset 和 last_id 二选一,优先使用 last_id。
last_id number 分页 id。首次调用填 0,后续调用填上次返回参数里的 last_id。offset 和 last_id 二选一,优先使用 last_id。
need_edited_data bool true:编辑版信息,false:发布版信息。默认值:false

# 返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误原因
book_list array<Book> 作品信息列表
total_cnt number 作品总数
last_id number 分页 id。仅当请求参数有设置 last_id 且作品信息列表不为空时才有该字段。

Book

属性 类型 说明
book_id string 作品id
title string 作品名
intro string 作品简介
cover_url string 封面图url
author string 作者名
first_category_id number 一级类型id
second_category_id number 二级类型id
third_category_id number 三级类型id
complete_status number 完结状态,1:连载中,2:已完结
upload_scene number 上传场景,1:本地上传,2:API上传
chapter_cnt number 章节数量
volume_cnt number 分卷数量
total_word_cnt number 作品总字数
audit_info AuditInfo 审核信息。未发起审核不返回该字段。
create_time number 创建时间戳
original_id string 提供方作品主键
chapter_order_method number 章节排序方式,0:追加,1:seq 递增
custom_info string 自定义信息

AuditInfo

属性 类型 说明
audit_status number 0:未提审,1:审核中,2:审核不通过,3:审核通过
create_time number 提审时间戳
audit_time number 审核时间戳
reason string 审核原因
suggestion string 修改建议。审核不通过时才会有该字段

# 调用示例

# 请求数据示例

// offset + limit
{
    "offset": 0,
    "limit": 1
}

// last_id + limit 推荐方式!
{
    "last_id": 0,
    "limit": 1
}

# 返回数据示例

// offset + limit
{
    "errcode": 0,
    "errmsg": "ok",
    "book_list": [
        {
            "book_id": "A1b2C3d4",
            "title": "香蕉牛奶",
            "intro": "香蕉牛奶的奇幻之旅。",
            "cover_url": "https://xxx.jpg",
            "author": "香蕉和牛奶",
            "first_category_id": 10001,
            "second_category_id": 10002,
            "third_category_id": 10003,
            "complete_status": 2,
            "upload_scene": 1,
            "chapter_cnt": 6,
            "volume_cnt": 3,
            "total_word_cnt": 15234,
            "create_time": 1704715412,
            "original_id": "",
            "chapter_order_method": 0
        }
    ],
    "total_cnt": 1
}

// last_id + limit 推荐方式!
{
    "errcode": 0,
    "errmsg": "ok",
    "book_list": [
        {
            "book_id": "A1b2C3d4",
            "title": "香蕉牛奶",
            "intro": "香蕉牛奶的奇幻之旅。",
            "cover_url": "https://xxx.jpg",
            "author": "香蕉和牛奶",
            "first_category_id": 10001,
            "second_category_id": 10002,
            "third_category_id": 10003,
            "complete_status": 2,
            "upload_scene": 1,
            "chapter_cnt": 6,
            "volume_cnt": 3,
            "total_word_cnt": 15234,
            "create_time": 1704715412,
            "original_id": "",
            "chapter_order_method": 0
        }
    ],
    "total_cnt": 1,
    "last_id": 1
}

# 获取作品信息

该接口用于获取作品详细信息,同获取作品列表,这里也会区分发布版和编辑版。 发布版和编辑版的区别见“获取作品列表”小节。

# 注意事项

  1. mp 后台的作品列表对应编辑版信息,需要设置 need_edited_data = true 来拉取。

# 调用方式

# HTTPS 调用

POST 
https://api.weixin.qq.com/wxa/book/getbook?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
book_id string 作品id,与提供方作品主键二选一,优先使用该字段
need_edited_data bool true:编辑版信息,false:发布版信息。默认值:false
original_id string 提供方作品主键,与作品id二选一

# 返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误原因
book array<Book> 作品信息

Book

属性 类型 说明
book_id string 作品id
title string 作品名
intro string 作品简介
cover_url string 封面图url
author string 作者名
first_category_id number 一级类型id
first_category_name string 一级类型名
second_category_id number 二级类型id
second_category_name string 二级类型名
third_category_id number 三级类型id
third_category_name string 三级类型名
complete_status number 完结状态,1:连载中,2:已完结
upload_scene number 上传场景,1:本地上传,2:API上传
chapter_cnt number 章节数
volume_cnt number 分卷数
volume_list array<Volume> 分卷信息
total_word_cnt number 作品总字数
audit_info AuditInfo 审核信息。未发起审核不返回该字段。
create_time number 创建时间戳
original_id string 提供方作品主键
chapter_order_method number 章节排序方式,0:追加,1:seq 递增
custom_info string 自定义信息

Volume

属性 类型 说明
volume_title string 分卷名
start_index number 分卷起始章节下标
end_index number 分卷截止章节下标

AuditInfo

属性 类型 说明
audit_status number 0:未提审,1:审核中,2:最终失败,3:审核通过
create_time number 提审时间戳
audit_time number 审核时间戳
reason string 审核原因
suggestion string 修改建议。审核不通过时才会有该字段

# 调用示例

# 请求数据示例

{
    "book_id": "A1b2C3d4"
}

# 返回数据示例

{
    "errcode": 0,
    "errmsg": "ok",
    "book": {
        "book_id": "A1b2C3d4",
        "title": "香蕉牛奶",
        "intro": "香蕉牛奶的奇幻之旅。",
        "cover_url": "https://xxx.jpg",
        "author": "香蕉和牛奶",
        "first_category_id": 10001,
        "first_category_name": "男频",
        "second_category_id": 10002,
        "second_category_name": "都市",
        "third_category_id": 10003,
        "third_category_name": "娱乐明星",
        "complete_status": 2,
        "upload_scene": 1,
        "chapter_cnt": 5,
        "volume_cnt": 0,
        "volume_list": [],
        "total_word_cnt": 15234,
        "create_time": 1704715412,
        "original_id": "",
        "chapter_order_method": 0

    }
}

# 上传章节

该接口用于上传章节到作品编辑版信息里,不直接影响发布版,需要提审通过后才会更新发布版。

# 注意事项

  1. 该接口会对标题进行预处理,删除标题的首尾空格,并将标题中间的连续空格替换为 1 个空格。
  2. 审核中的作品不支持上传章节。
  3. 作品章节排序方式为“追加”模式时,新上传章节会放到作品的最后,seq 字段选填,无实际作用,请按照章节顺序串行调用接口。若需要对已上传章节调整顺序,可以调用”编辑作品“或“调整章节顺序”接口。
  4. 作品章节排序方式为“seq 递增”模式时,新上传的章节会根据 seq 从小到大稳定排序到正确位置。接口仍需串行调用,不支持并发调用。

# 调用方式

# HTTPS 调用
POST 
https://api.weixin.qq.com/wxa/book/createchapter?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
book_id string 作品id
chapter Chapter 章节信息

Chapter

属性 类型 必填 说明
chapter_title string 章节标题。长度限制 1-80 字。
content string 章节内容。长度限制 1-20000 字。
original_id string 提供方章节主键,可用于去重。长度限制 0-255 字节。
seq number 章节相对顺序,可非连续递增,默认值:0。详见注意事项。
custom_info string 自定义信息。长度限制 0-128 字节。

# 返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误原因
chapter_id string 章节id。非定长,不超过 64 字节。

# 调用示例

# 请求数据示例

{
    "book_id": "A1b2C3d4",
    "chapter": {
        "chapter_title": "第一章 香蕉的诞生",
        "content": "从前,有一座山……"
    }
}

# 返回数据示例

{
    "errcode": 0,
    "errmsg": "ok",
    "chapter_id": "abc1234"
}

# 批量上传章节

该接口用于批量上传章节到作品编辑版信息里,不直接影响发布版,需要提审通过后才会更新发布版。

# 注意事项

  1. 该接口会对标题进行预处理,删除标题的首尾空格,并将标题中间的连续空格替换为 1 个空格。
  2. 审核中的作品不支持上传章节。
  3. 作品章节排序方式为“追加”模式时,新上传章节会放到作品的最后,seq 字段选填,无实际作用,请按照章节顺序串行调用接口。若需要对已上传章节调整顺序,可以调用”编辑作品“或“调整章节顺序”接口。
  4. 作品章节排序方式为“seq 递增”模式时,新上传的章节会根据 seq 从小到大稳定排序到正确位置。接口仍需串行调用,不支持并发调用。

# 调用方式

# HTTPS 调用

POST 
https://api.weixin.qq.com/wxa/book/batchcreatechapter?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
book_id string 作品id
chapter_list array<Chapter> 章节信息,单次最多上传 10 章。

# Chapter

属性 类型 必填 说明
chapter_title string 章节标题。长度限制 1-80 字。
content string 章节内容。长度限制 1-20000 字。
original_id string 提供方章节主键,可用于去重。长度限制 0-255 字节。
seq number 章节相对顺序,可非连续递增。详见注意事项。
custom_info string 自定义信息。长度限制 0-128 字节。

# 返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误原因
chapter_id_list array<string> 章节id列表。章节id非定长,不超过 64 字节。
conflict_original_id_list array<string> 冲突的章节主键列表

# 调用示例

# 请求数据示例

{
    "book_id": "A1b2C3d4",
    "chapter_list": [
        {
            "chapter_title": "第一章 香蕉的诞生",
            "content": "从前,有一座山……"
        },
        {
            "chapter_title": "第二章 牛奶的诞生",
            "content": "一望无际的草原,有一群快乐的奶牛……"
        }
    ]
}

# 返回数据示例

{
    "errcode": 0,
    "errmsg": "ok",
    "chapter_id_list": ["abc1234", "abc2345"]
}

# 删除章节

该接口用于删除作品编辑版里的章节,不直接影响发布版,需要提审通过后才会更新发布版。

# 调用方式

# HTTPS 调用

POST 
https://api.weixin.qq.com/wxa/book/deletechapter?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
book_id string 作品id
chapter_id string 章节id

# 返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误原因

# 调用示例

# 请求数据示例

{
    "book_id": "A1b2C3d4",
    "chapter_id": "abc123"
}

# 返回数据示例

{
    "errcode": 0,
    "errmsg": "ok"
}

# 替换章节

该接口用于替换作品编辑版里的已有章节内容,不直接影响发布版,需要提审通过后才会更新发布版。

# 注意事项

  1. 审核中的作品不支持上传章节。
  2. 该接口会生成新的章节 id,原章节 id 失效。
  3. 新章节会继承原章节的提供方主键。

# 调用方式

# HTTPS 调用

POST 
https://api.weixin.qq.com/wxa/book/replacechapter?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
book_id string 作品id
chapter_id string 章节id
new_chapter_title string 新章节标题。长度限制 1-80 字。
new_content string 新章节内容。长度限制 1-20000 字。

# 返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误原因
new_chapter_id string 替换后新章节id

# 调用示例

# 请求数据示例

{
    "book_id": "A1b2C3d4",
    "chapter_id": "x1y2z3",
    "new_chapter_title": "第一章 香蕉的诞生",
    "new_content": "从前,有一座山……"
}

# 返回数据示例

{
    "errcode": 0,
    "errmsg": "ok",
    "new_chapter_id": "abc1234"
}

# 获取章节列表

该接口用于获取章节信息。

# 注意事项

  1. 同作品信息,该接口也会区分编辑版和发布版。当设置编辑版信息时,只能获取作品编辑版里的章节信息;当设置发布版信息时,只能获取作品发布版里的章节信息。

# 调用方式

# HTTPS 调用

POST 
https://api.weixin.qq.com/wxa/book/listchapter?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
book_id string 作品id
need_edited_data bool true:编辑版信息,false:发布版信息。默认值:false
limit number 分页拉取的最大返回结果数。默认值:10;最大值:100
offset number 分页拉取的起始偏移量,默认值:0
volume_index number 分卷下标,若设置则只返回指定卷的章节列表

# 返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误原因
chapter_list array<Chapter> 章节信息列表
total_cnt number 章节总数

Chapter

属性 类型 说明
chapter_id string 章节id
chapter_title string 章节标题
word_cnt number 字数
create_time number 创建时间戳
audit_info AuditInfo 审核信息
volume_index number 所属分卷下标,-1 表示不属于任何分卷
original_id string 提供方章节主键
seq number 章节相对顺序
custom_info string 自定义信息

AuditInfo

属性 类型 说明
audit_status number 0:未提审,1:审核中,2:最终失败,3:审核通过
create_time number 提审时间戳
audit_time number 审核时间戳
reason string 审核原因
suggestion string 修改建议。审核不通过时才会有该字段

# 调用示例

# 请求数据示例

{
    "book_id": "A1b2C3d4",
    "need_edited_data": true,
    "limit": 10,
    "offset": 0
}

# 返回数据示例

{
    "errcode": 0,
    "errmsg": "ok",
    "chapter_list": [
        {
            "chapter_id": "abc1234",
            "chapter_title": "第一章 x",
            "word_cnt": 1234,
            "create_time": 1704793640,
            "volume_index": -1,
            "original_id": "1234",
            "seq": 100
        }
    ],
    "total_cnt": 1
}

# 获取章节信息

该接口用于获取章节信息。

# 注意事项

  1. 同作品信息,该接口也会区分编辑版和发布版。当设置编辑版信息时,只能获取作品编辑版里的章节信息;当设置发布版信息时,只能获取作品发布版里的章节信息。

# 调用方式

# HTTPS 调用

POST 
https://api.weixin.qq.com/wxa/book/getchapter?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
book_id string 作品id
chapter_id string 章节id
need_edited_data bool true:编辑版信息,false:发布版信息。默认值:false

# 返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误原因
chapter Chapter 章节信息

Chapter

属性 类型 说明
chapter_id string 章节id
chapter_title string 章节标题
content string 章节内容
word_cnt number 字数
create_time number 创建时间戳
audit_info AuditInfo 审核信息。未发起审核不返回该字段。
volume_index number 所属分卷下标,-1 表示不属于任何分卷
original_id string 提供方章节主键
custom_info string 自定义信息

AuditInfo

属性 类型 说明
audit_status number 0:未提审,1:审核中,2:审核不通过,3:审核通过
create_time number 提审时间戳
audit_time number 审核时间戳
reason string 审核原因
suggestion string 修改建议。审核不通过时才会有该字段。

# 调用示例

# 请求数据示例

{
    "book_id": "A1b2C3d4",
    "chapter_id": "abc123"
}

# 返回数据示例

{
    "errcode": 0,
    "errmsg": "ok",
    "chapter": {
        "book_id": "A1b2C3d4",
        "chapter_id": "abc1234",
        "chapter_title": "第一章 香蕉的诞生",
        "content": "从前,有一座山……",
        "word_cnt": 1234,
        "create_time": 1704793640,
        "audit_info": {
            "audit_status": 3,
            "create_time": 1705062255,
            "audit_time": 1705063255,
        },
        "volume_index": -1,
        "original_id": "1234"
    }
}

# 调整章节顺序

该接口用于调整作品编辑版信息中的章节顺序,不直接影响发布版,需要提审通过后才会更新发布版。若需批量修改章节顺序,可通过“编辑作品”接口的 chapter_id_list 参数实现。

# 注意事项

  1. 该接口仅当作品“章节排序方式”为“追加”时才生效,如需修改章节排序方式可调用“编辑作品”接口。

# 调用方式

# HTTPS 调用

POST 
https://api.weixin.qq.com/wxa/book/reorderchapter?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
book_id string 作品id
chapter_id string 章节id
target_chapter_id string 目标章节id
operation number 排序操作,1:交换,2:插入到目标章节之前,3:插入到目标章节之后

# 返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误原因

# 调用示例

# 请求数据示例

{
    "book_id": "A1b2C3d4",
    "chapter_id": "abc123",
    "target_chapter_id": "qwe456",
    "operation": 1
}

# 返回数据示例

{
    "errcode": 0,
    "errmsg": "ok"
}

# 调整章节相对顺序

该接口用于调整作品编辑版信息中的章节顺序,不直接影响发布版,需要提审通过后才会更新发布版。

# 注意事项

  1. 该接口仅当作品“章节排序方式”为“seq 递增”时才生效,如需修改章节排序方式可调用“编辑作品”接口。

# 调用方式

# HTTPS 调用

POST
https://api.weixin.qq.com/wxa/book/updatechapterseq?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
book_id string 作品id
chapter_seq_list array<ChapterSeq> 章节 seq 列表

ChapterSeq

属性 类型 必填 说明
chapter_id string 章节id
seq number 章节相对顺序,可非连续递增

# 返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误原因

# 调用示例

# 请求数据示例

{
    "book_id": "A1b2C3d4",
    "chapter_seq_list": [
        {
            "chapter_id": "chapter10",
            "seq": 100,
        },
        {
            "chapter_id": "chapter20",
            "seq": 200
        }
    ]
}

# 返回数据示例

{
    "errcode": 0,
    "errmsg": "ok"
}

# 作品提审

# 作品提审

作品提交审核。审核通过后会更新作品发布版信息。

# 注意事项

  1. 作品可发起提审的前提条件包括:
    • 至少有一章
    • 若有分卷,分卷信息需要覆盖所有章节(上传、删除章节后需要重新修改分卷信息)

# 调用方式

# HTTPS 调用

POST 
https://api.weixin.qq.com/wxa/book/auditbook?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
book_id string 作品id

# 返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误原因

# 调用示例

# 请求数据示例

{
    "book_id": "A1b2C3d4"
}

# 返回数据示例

{
    "errcode": 0,
    "errmsg": "ok"
}

# 授权管理

# 说明

账号-小说授权是由主授权者账号(appid)-> 作品id -> 被授权者账号(appid)三维度所构建的数据关系,API提供对此关系数据进行增,删,改,查的能力。

# 新增账号-小说授权

增加账号-小说的授权关系数据,主授权账号使用可一次调用新增多条授权关系(上限20条)

  1. 同appid每天限额调用1000000次
  2. 同appid每分钟限额调用100次,即2000条授权关系(建议控制好每分钟调用量,调用过猛被拦截的调用量也会消耗每日调用量的额度, 日限额耗完当日就会无法调用)

# 调用方式

# HTTPS 调用

POST 
https://api.weixin.qq.com/wxa/book/addbookauth?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
book_id string 作品id
grantee_appid string 被授权账号appid
expire_time number 授权到期时间unix时间戳,单位秒,按CST时区 可支持设置的最大值: 2147483646

# 返回参数

属性 类型 说明
errcode number 错误码。
因为新增授权可以一次增加多条授权关系,所以返回数据里 errcode 会有内外两个字段,外层 errcode 表示本次调用整体成功/失败,内层 errcode 表示每条授权关系是成功/失败。
具体可以看返回数据的示例

# 调用示例

# 请求数据示例

{
    "books": [
        {
            "book_id": "A1Hcfuuv",
            "expire_time": 1704970161,
            "grantee_appid": "wx002"
        },
        {
            "book_id": "KqNdTu",
            "expire_time": 1705460123,
            "grantee_appid": "wx003"
        }
    ]
}

# 返回数据示例

{
    "errcode": 0,  //外层errcode, 表示本次调用整体成功/失败
    "results": [
        {
            "errcode": 0  //内层errcode,表示每条授权关系是成功/失败
        }
    ]
}

# 查看主授权关系列表

查看账号的小说授权关系列表,主授权账号使用

  1. 同 appid 每天限额调用 10000 次

# 调用方式

# HTTPS 调用

POST
https://api.weixin.qq.com/wxa/book/querybookauth?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
type number 填 0 或者不设置: 查授权列表, 填 1: 查被授权列表
offset number 结果数据偏移位置 从 0 开始,用于翻页
count number 获取记录的数量, 上限一次 100 条,用于翻页
is_sum bool 填 true,返回总数,填 false 不返回
book_id string 过滤出等于该 book_id 的授权结果

# 返回参数

属性 类型 说明
errcode number 错误码
book_id string 作品id
grantor_appid string 主授权账号appid
grantee_appid string 被授权账号appid
expire_time number 授权到期时间,unix时间戳,单位秒,按CST时区
sum number 总数,is_sum = true 返回

# 调用示例

# 请求数据示例

{
    "count": 20,
    "offset": 0   
}

# 返回数据示例

{
    "errcode": 0, //当等于0时,results字段的数据才有效
    "results": [
        {
            "book_id": "A1Hcfu",
            "grantor_appid": "wx001",
            "grantee_appid": "wx004",
            "expire_time": 1801698644
        },
        {
            "book_id": "uvKqNd",
            "grantor_appid": "wx001",
            "grantee_appid": "wx005",
            "expire_time": 1704259146
        }
    ]
}

# 查看被授权关系列表

查看账号的小说被授权关系列表,被授权账号使用

  1. 同 appid 每天限额调用 10000 次

# 调用方式

# HTTPS 调用

POST 
https://api.weixin.qq.com/wxa/book/querybookauth?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
type number 填 0 或者不设置: 查授权列表, 填 1: 查被授权列表
offset number 结果数据偏移位置。从 0 开始,用于翻页
count number 获取记录的数量,上限一次 100 条,用于翻页

# 返回参数

属性 类型 说明
errcode number 错误码
book_id string 作品id
grantor_appid string 主授权账号appid
grantee_appid string 被授权账号appid
expire_time number 授权到期时间,unix时间戳,单位秒,按CST时区

# 调用示例

# 请求数据示例

{
    "count": 20,
    "offset": 0
}

# 返回数据示例

{
    "errcode": 0, //当等于0时,results字段的数据才有效
    "results": [
        {
            "book_id": "A1Hcfu",
            "grantor_appid": "wx001",
            "grantee_appid": "wx004",
            "expire_time": 1801698644
        },
        {
            "book_id": "uvKqNd",
            "grantor_appid": "wx001",
            "grantee_appid": "wx004",
            "expire_time": 1704259146
        }
    ]
}

# 删除指定的授权关系

删除账号的小说授权关系,主授权账号使用

  1. 同appid每天限额调用10000次

# 调用方式

# HTTPS 调用

POST
https://api.weixin.qq.com/wxa/book/delbookauth?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
book_id string 作品id
grantee_appid string 被授权账号appid

# 返回参数

属性 类型 说明
errcode number 错误码

# 调用示例

# 请求数据示例

{
    "book_id": "A1Hcfu",
    "grantee_appid": "wx001"
}

# 返回数据示例

{
    "errcode": 0
}

# 事件通知

如需监听作品审核状态事件,可阅读本章内容。具体接入方式可以参考公众平台的消息推送:

如果开发者是小程序商家,请移步:消息推送|微信开放文档

如果开发者是服务商第三方平台,请移步:创建与配置第三方平台准备工作|微信开放文档

第三方平台需新增小说阅读器管理权限集 169 并重新授权。

# 审核状态事件

# 请求参数

属性 类型 必填 说明
book_id string 作品id
audit_detail BookAuditDetail 作品审核结果。每一章的审核结果可通过「获取章节列表」查询。

BookAuditDetail

属性 类型 说明
status number 2:审核不通过,3:审核通过
create_time number 提审时间戳
audit_time number 审核时间戳
<xml>
    <ToUserName>gh_abcdefg</ToUserName>
    <FromUserName>oABCD</FromUserName>
    <CreateTime>12344555555</CreateTime>
    <MsgType>event</MsgType>
    <Event>secbook_audit_event</Event>
    <audit_event>
        <book_id>A1b2C3d4</book_id>
        <audit_detail>
            <status>3</status>
            <create_time>168625255</create_time>
            <audit_time>168626255</audit_time>
        </audit_detail>
    </audit_event>
</xml>

# 预览设置

当用户尚未付费解锁某章节时,会默认进入章节预览模式,默认预览 150 个字。如果有自定义需求则可通过预览设置接口进行设置。

# 预览设置修改

设置书本章节预览字数。

# 调用方式

# HTTPS 调用

POST
https://api.weixin.qq.com/wxa/business/novelreader/setpreviewsetting?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
book_id string 作品id
default_words number 默认预览字数
chapter_index number 章节索引,从 0 开始,未设置的章节将使用 default_words 作为预览字数
words number 章节字数

# 返回参数

属性 类型 说明
errcode number 错误码

# 调用示例

# 请求数据示例

{
    "setting": {
        "book_id": "test",
        "default_words": 240,
        "chapter_setting": [
            {
                "chapter_index": 1,
                "words": 123
            }
        ]
    }
}

# 返回数据示例

{
    "errcode": 0
}

# 预览设置获取

获取书本章节预览字数设置。

# 调用方式

# HTTPS 调用

POST
https://api.weixin.qq.com/wxa/business/novelreader/getpreviewsetting?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
book_id string 作品id

# 返回参数

属性 类型 说明
errcode number 错误码
book_id string 作品id
default_words number 默认预览字数
chapter_index number 章节索引,从 0 开始,未设置的章节将使用 default_words 作为预览字数
words number 章节字数

# 调用示例

# 请求数据示例

{
    "book_id": "test"
}

# 返回数据示例

{
    "errcode": 0,
    "errmsg": "ok",
    "setting": {
        "book_id": "test",
        "default_words": 240,
        "chapter_setting": [
            {
                "chapter_index": 1,
                "words": 123
            }
        ]
    }
}

# 运营能力

# 读后推荐

阅读器插件支持在阅读后推荐其他小说,开发者需要主动设置想要推荐的小说。

# 调用方式

# HTTPS 调用

POST
https://api.weixin.qq.com/wxa/business/novelreader/setrecmdnovel?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessToken
recmd_type number 推荐小说的类型:1-付费小说 2-全文免费小说
book_id_list Array 推荐小说的 book_id 数组

# 返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误信息

# 调用示例

# 请求数据示例

{

    "recmd_type":1, //1-付费小说  2-全文免费小说

    "book_id_list":[

        "321321",
        
        "abcdef"
    ]
}

注1: 每次设置都会覆盖同一recmd_type下的推荐小说,因此需要把所有要设置的推荐小说一次加上。 注2: 仅支持推荐当前小程序有权限的小说。 注3: book_id_list传空数组,则将记录清空。 注4: book_id_list最大长度为 300。

# 返回数据示例

{
    "errcode": 0,
    "errmsg":"ok"
}

# 附录

# 常见错误码

errcode 说明
0 成功
-1 系统失败
10140001 无效参数
10140002 请使用 utf-8 编码
10140003 无效的作品名
10140004 无效的作品简介
10140005 无效的封面图
10140006 无效的作者
10140007 无效的作品类型
10140008 无效的完结状态
10140009 无效的上传场景
10140010 无效的章节下标列表,请检查是否有重复或未覆盖所有章节
10140011 无效的章节ID列表,请检查是否有重复、不属于该作品的章节ID或未覆盖所有章节
10140012 无效的分卷列表,请检查分卷标题是否规范,区间是否存在交集或未覆盖所有章节
10140013 缺少章节信息
10140014 章节信息过多
10140015 缺少作品ID
10140016 作品ID过多
10140017 无效的分页最大结果数
10140018 无效的章节标题
10140019 无效的章节内容
10140020 无效的排序操作
10140021 无效的章节排序方式
10140022 缺少章节seq
10140023 请求参数中存在重复的提供方主键
10140024 无效的提供方主键
10140025 无效的优先级
10140026 无效的自定义信息
10141001 找不到对应信息
10141002 不允许操作
10141003 作品正在审核中
10141004 添加审核信息失败
10141005 太多检查不通过项
10141006 作品未审核通过,无法发布
10141007 作品缺少章节
10141008 作品分卷信息需要更新
10141009 提供方主键冲突
10141010 该接口与当前作品的章节排序方式不兼容,如需调用请先修改章节排序方式
10145001 操作结果为空
10145002 调用系统失败
10145003 缺少入参
10145004 授权作品ID无效
10145005 授权者不是小说类目
10145006 被授权者不是小说类目
10145007 过期的时间信息/或者授权的时间异常
10145008 一次提交授权的作品太多或者太少(count = 0 or count > 20)
10145009 一次查询授权列表拉取的count太多(count > 100)
10145010 添加的授权记录有部分失败
10145011 appid无效
10145012 授权者和被授权者不能相同

# 更新记录

# 2024年12月18日

  1. 支持删除作品

# 2024年11月27日

  1. 支持读后推荐功能

# 2024年05月21日

  1. 作品/章节支持传入自定义信息

# 2024年05月09日

  1. 获取作品列表新增 last_id 分页方式

# 2024年04月18日

  1. 支持第三方平台,权限集 ID 169

# 2024年04月12日

  1. 支持传入作品/章节提供方主键去重
  2. 支持切换作品章节排序方式,新增 seq 递增排序
  3. 新增替换章节、调整章节相对顺序接口

# 2024年03月12日

  1. 支持审核状态事件通知