有声读物
用户在搜索有声读物时,搜索会展现“有声读物“卡片,提供该读物播放次数、内容、剧集等信息,满足用户的需求。
示意图
intent 上传接口
当前资源 intent 意图参数
key | 类型 | 含义 | 示例/说明 |
---|---|---|---|
album | string | 有声读物专辑名 | “晓说” |
通过平台上传 txt 文件
资源方需要将自己小程序能够覆盖的所有 intent 参数组合通过 txt 文件上传到平台上,txt 文件的具体要求参见接入流程-上传 intent 数据。
当前资源分类 txt 上传文件内容示例如下:
- {"album":"晓说"}
{"album":"元始天尊"}
{"album":"明朝那些事"}
通过开放 API 上传
未开放
Webhook API
发送给 webhook 的请求
公共字段
key | 类型 | 含义 | 示例/说明 |
---|---|---|---|
type | string | 请求类型(大部分开发者可不关心) | 在小程序阿拉丁下永远为 “sp_ala” |
surface | string | 搜索场景(大部分开发者可不关心) | mobile: 支持小程序的移动搜索,web_h5: 支持 H5 的移动搜索 |
srcid | string | 资源编号 | 每个资源分类不同 |
intent | object | 搜索意图参数 | JSON 对象,每个资源分类不同 |
当前资源 srcid 资源编号
key | 类型 | 含义 | 设定 |
---|---|---|---|
srcid | string | 资源编号 | 5518 |
当前资源的 intent 参数参考上节 “intent 上传接口“。
举例:发送给 webhook 的 JSON (解密后)
- {
"type": "sp_ala",
"srcid": "5518",
"surface": "mobile",
"intent": {
"album":"晓说"
}
}
从 webhook 返回的结果
外层通用数据字段
key | 类型 | 含义 | 示例/说明 |
---|---|---|---|
status | integer | 结果状态码,0 代表正确,1 代表无结果,2 代表请求参数错误,3 代表内部服务错误 | 0 |
msg | string | 出错消息,当非 0 时提供 | “” |
data | object | 要返回的资源数据内容 | JSON 对象,每个资源分类不同 |
当前资源分类的 data
object 字段内容:
key | 类型 | 要求 | 说明 |
---|---|---|---|
jump_url | string | 必选 | 卡片标题的跳转链接,跳转到与该卡片内容相关的有声读物页面 |
album_image | string | 必选 | 有声读物图片,像素364*364 |
album_name | string | 必选 | 有声读物名称 |
broadcast_count | string | 必选 | 有声读物播放次数 |
content_count | string | 必选 | 有声读物内容数量 |
content_list | array | 必选 | 有声读物列表,3-5个 |
content_list.num | string | 必选 | 有声读物的内容序号,例如”1” |
content_list.name | string | 必选 | 有声读物中单个内容的名称,例如”晓说第1集:大航海时代” |
content_list.duration | string | 必选 | 有声读物中单个内容的时长,格式为 “时长:70:36” |
举例:从 webhook 返回的 JSON (加密前)
- {
"status": 0,
"msg": "",
"data": {
"album_image": "https://example.com/img.jpg",
"album_name": "晓说",
"broadcast_count": "11w",
"content_count": "54集",
"content_list": [
{
"num": "1",
"name": "最后一期:谢谢各位",
"duration": "时长:46:32"
},
{
"num": "2",
"name": "58期:三沙行(下)南海风云",
"duration": "时长:35:32"
},
{
"num": "3",
"name": "57期:三沙行(上)南海风云",
"duration": "时长:35:32"
}
],
"jump_url": "/path/to/page"
}
}
审核常见问题
intent的编写
有声资源的intent应该是开发者能提供内容服务的有声资源名称,开发者可以对intent进行适当泛化,但是必须在卡片能提供的内容服务范围内。开发者应清晰了解intent泛化边界,举例如下:
类目 | intent | 卡片内容 | 是否通过 | 说明 |
---|---|---|---|---|
有声资源 | {“album”:”郭德纲21年相声精选”} | 郭德纲21年相声精选 | 通过 | |
有声资源 | {“album”:”郭德纲相声精选”} | 郭德纲21年相声精选 | 通过 | |
有声资源 | {“album”:”郭德纲相声”} | 郭德纲21年相声精选 | 通过 | |
有声资源 | {“album”:”郭德纲”} | 郭德纲21年相声精选 | 不通过 | intent过度泛化,与演出门票类目无关 |
注意:当一条内容由不同主播播出,开发者应择优提供,切不可多条内容对应一条intent。