一、接口地址
·预发布环境域名:https://preview.baike.qq.com
·生产环境域名:https://h5.baike.qq.com
注意:说明:
注意:在新接口联调时,请使用预发布环境的域名;已上线接口使用正式环境域名。
二、接口说明
接口地址:https://preview.baike.qq.com/api/access/json/cmd/RecommendV2
接口请求方式:POST
接口请求头:Content-Type: application/json
三、签名生成说明
| 参数名称 | 参数代码 | 说明 |
| 当前 UNIX 时间戳 | timestamp | 单位秒。如果 timestamp 表示的时间戳与医典服务端时间相差超过三分钟,则认为请求过时,会拒绝请求并返回相应的错误。 |
| 随机数 | noncestr | – |
| 签名 | signature | 生成签名的流程如下:1. appid、timestamp、noncestr 三个参数按"appid=%s&noncestr=%s×tamp=%s" 格式拼接2. 使用 appsecret 将上述拼接字符串通过 hmac 签名算法进行 sha256 摘要(直接 hmac 时 sha256),编码为字符串后即为此次请求的签名。 |
| 渠道 ID | appid | 请 联系我们 为你提供。 |
| 渠道密钥 | appsecret | 请 联系我们 为你提供。 |
| 渠道标识 | adtag | 请 联系我们 为你提供。 |
四、请求参数说明
| 参数名称 | 参数代码 | 是否必填 | 类型 | 说明 |
| 请求头 | header | 是 | object | – |
| 请求版本号 | header.version | 是 | string | 固定传1.0.0 |
| 请求标志 | header.flag | 是 | int | 固定传0 |
| 请求体 | body | 是 | object | – |
| 请求序号 | body.seq | 是 | int | 固定传0 |
| 请求命令字 | body.cmd | 是 | string | 固定传 SearchV2 |
| 请求签名 | body.token | 是 | string | 固定传空字符串 |
| 请求客户端信息 | body.client | 是 | object | – |
| 请求客户端 IP | body.client.clientIP | 是 | string | 固定传空字符串 |
| 请求渠道标识 | body.client.adtag | 是 | string | 请 联系我们 为你提供。 |
| 请求参数 | body.payload | 是 | object | – |
| 当前 UNIX 时间戳 | body.payload.timestamp | 是 | string | 单位秒。请求参数说明详见 签名生成说明。 |
| 随机数 | body.payload.noncestr | 是 | string | 请求参数说明详见 签名生成说明。 |
| 签名 | body.payload.signature | 是 | string | 输入参数示例为 appsecret="test"时生成的签名示例,请求参数说明详见 签名生成说明。 |
| 渠道 ID | body.payload.appid | 是 | string | 请 联系我们 为你提供。 |
| 请求参数 | body.payload.recommend_req | 是 | object | – |
| 文章列表数量 | body.payload.recommend_req.article_cnt | 是 | int | 需大于0,建议不超过20,一次拉取太多文章可能导致超时。 |
| 渠道 ID | body.payload.recommend_req.ad_tag | 是 | string | 请 联系我们 为你提供。 |
| 用户扩展信息 | body.payload.recommend_req.extra_info | 是 | array | 包括用户 ID,用户信息。请求参数说明详见 请求用户扩展信息参数说明。 |
| 用户标签 | body.payload.recommend_req.user_tags | 否 | array | 传入用户画像标签。例如 xx 用户是高血压标签用户,可以增加高血压内容的推荐占比,请求参数说明详见 请求用户标签参数说明。 |
| 标签过滤规则 | body.payload.recommend_req.tag_filter | 否 | object | 返回匹配规则的内容,为空时不限制内容。 |
| 标签 | body.payload.recommend_req.tag_filter.tags | 否 | array | 当 l1_class 和 l2_class 赋值时,tag_word 不用赋值;当 tag_word 赋值时,l1_class 和 l2_class 不赋值。 |
| 分类标签:一级分类 | body.payload.recommend_req.tag_filter.tags[].l1_class | 否 | string | 用于过滤推荐接口返回的内容,例如只要【母婴育儿】类的内容推荐。如需使用标签过滤功能,需要提前跟医典产品侧对齐标签文本再入参。 |
| 分类标签:二级分类 | body.payload.recommend_req.tag_filter.tags[].l2_class | 否 | string | 同上,用于过滤二级标签内容,例如只返回【母婴育儿_备孕】的内容推荐。赋值时一级分类不能为空。 |
| 语义标签 | body.payload.recommend_req.tag_filter.tags[].tag_word | 否 | string | 用于过滤推荐接口返回的内容,如需使用标签过滤功能,需要提前跟医典产品侧对齐标签文本再入参。例如【高血压】【老人】之类的标签。 |
| 标签关系 | body.payload.recommend_req.tag_filter.relation | 否 | string | 1:并集合(或):多个标签之间取并集内容返回,即内容池相加。2:交集(与):多个标签取交集内容返回,即内容池取重叠部分。 |
五、请求用户扩展信息参数说明
| 参数名称 | 参数代码 | 类型 | 说明 |
| 名称 | type | string | 有固定范围,如果有其他新增,请 联系我们。请求参数说明详见 用户扩展信息固定范围说明。 |
| 数据 | tag | string | – |
六、请求用户扩展信息固定范围说明
| 参数名称 | 参数代码 | 是否必填 | 说明 |
| 用户唯一 ID | txyd_outer_userid | 是 | 用于个性化推荐,如果没有用户唯一 ID,请 联系我们。 |
| 手机号 | txyd_outer_phone | 否 | – |
| IDFA | txyd_outer_idfa | 否 | – |
| OAID | txyd_outer_oaid | 否 | – |
| IMEI | txyd_outer_imei | 否 | – |
| 安卓 ID | txyd_outer_android | 否 | – |
| 年龄 | user_info_age | 否 | – |
| 性别 | user_info_gender | 否 | 1表示男性,2表示女性。 |
| 职业 | user_info_occupation | 否 | – |
| 地域 | user_info_area | 否 | – |
| 婚恋 | user_info_marriage | 否 | – |
| 学历 | user_info_education | 否 | – |
七、请求用户标签参数说明
| 参数名称 | 参数代码 | 类型 | 说明 |
| 名称 | type | string | 有固定范围,目前可选: [disease,symptom,examine,treatment,medication],如果有其他新增,请 联系我们。 |
| 数据 | tag | string | – |
| 权重 | weight | float | 预留字段,范围:[0, 1],目前填1。 |
八、响应参数说明
| 参数名称 | 参数代码 | 类型 | 说明 |
| 请求头 | header | object | – |
| 请求版本号 | header.version | string | – |
| 请求标志 | header.flag | int | – |
| 请求体 | body | object | – |
| 请求序号 | body.seq | int | – |
| 请求命令字 | body.cmd | string | – |
| 接入返回码 | body.retcode | string | 只有 retcode 和 bizcode 都为0时表示接口调用成功。 |
| 业务返回码 | body.bizcode | string | 只有 retcode 和 bizcode 都为0时表示接口调用成功。 |
| 错误信息 | body.message | string | – |
| 请求 ID | body.traceid | string | 如果有问题,请提供返回的 traceid,方便定位问题 |
| 响应参数 | body.payload | object | – |
| 推荐文章列表 | body.payload.recommend_data | array | 响应参数结构详见 响应推荐文章参数说明 |
九、响应推荐文章参数说明
| 参数名称 | 参数代码 | 类型 | 说明 |
| 文章 ID | doc_id | string | – |
| 文章标题 | title | string | – |
| 文章类型 | ctype | int | 8表示视频页,其他均为图文内容页 |
| 文章缩略图 URL | summary_url | string | – |
| 文章简介 | abs | string | – |
| 文章来源 | source | string | – |
| 发布时间 | releasetime | string | 格式: YYYY-MM-DD |
| 视频方向 | direction | | 0:默认值,无实际意义1:横屏2:竖屏 |
| H5 的跳转链接 | url | string | – |
| 文章作者信息 | op_author | object | 作者展示逻辑参考:优先展示医生,医生为空展示医院响应参数结构详见 响应文章作者信息参数说明。 |
十、响应文章作者信息参数说明
| 参数名称 | 参数代码 | 类型 | 说明 |
| 医生背书信息 | op_doctor | array | 响应参数结构详见 响应作者医生信息参数说明。 |
| 医院背书信息 | op_hospital | object | 响应参数结构详见 响应作者医院信息参数说明。 |
十一、响应作者医生信息参数说明
| 参数名称 | 参数代码 | 类型 | 说明 |
| 医生 ID | drid | int | — |
| 医院 ID | hpid | int | – |
| 医生名字 | name | string | – |
| 医生头像 | icon | string | – |
| 医生职称 | position | string | – |
| 医院名称 | hospital | string | – |
| 医生科室 | department | string | – |
| 组合好的审阅描述信息,用于展示。 | text | string | – |
| 医生类型 | weight | int | 0:普通医生2:顾问级专家 |
| 是否特约作者 | sole | int | 0:不是特约作者1:是特约作者 |
| 废弃字段 | doctor_clickable、hospital_clickable、follow、hprank、prefix、doctor_type | / | 字段暂无使用,可忽略。 |
十二、响应作者医院信息参数说明:
| 参数名称 | 参数代码 | 类型 | 说明 |
| 医院 ID | hpid | int | – |
| 医院名字 | name | string | – |
| 医院头像 | icon | string | – |
| 废弃字段 | clickable、hprank、prefix、info | / | 字段暂无使用,可忽略。 |
十三、输入参数示例
{
"header": {
"version": "1.0.0",
"flag": 0
},
"body": {
"seq": 0,
"cmd": "SearchV2",
"token": "",
"client": {
"clientIP": "",
"adtag": "$adtag"
},
"payload": {
"timestamp": "1669950164",
"noncestr": "0.623706833947",
"signature": "33c8f78ce2258c30af5f31b4153cd8b69035bfad06294a08c4ca0cf2ab5e4a46",
"appid": "2000000000000000",
"recommend_req": {
"article_cnt": 10,
"ad_tag": "$adtag",
"extra_info": [
{
"type": "txyd_outer_userid",
"tag": "userid_1"
}
],
"user_tags": [
{
"type": "disease",
"tag": "高血压",
"weight": 1
}
],
"tag_filter": {
"tags": [
{
"l1_class": "饮食营养",
"l2_class": ""
},
{
"tag_word": "妇科"
}
],
"relation": 1
}
}
}
}
}
十四、响应参数示例
{
"body": {
"message": "success",
"payload": {
"recommend_data": [
{
"ctype": 8,
"url": "https://preview.baike.qq.com/mobile/article.html?sn=yidian-sn-ZHjnr0xXhxqJDontkY7pYLNoePQDmJeao36Z3WSbu6dsHgjNn2BIsuFwOR7lRvJF&tmenulogo=hide&adtag=jkyb.ydyy&externchannel_uin=",
"source": "腾讯医典医学团队",
"title": "乳腺癌早期有哪些危险信号?",
"summary_url": "https://th-yidian-cos-1251316161.file.myqcloud.com/2023062/9efdbf30-0b46-11ee-a34c-e770b37218c5_0.jpg",
"abs": "大部分乳腺癌的患者皆因没有定期做体检筛查,发现乳房异常(肿块)等情况才会就医被确诊。",
"op_author": {
"op_doctor": [
{
"hospital_clickable": 0,
"prefix": "",
"name": "吴炅",
"weight": 0,
"sole": 0,
"department": "乳腺外科",
"follow": -1,
"text": "复旦大学附属肿瘤医院吴炅主任医师审阅",
"hprank": "三甲",
"drid": 10116,
"hpid": 0,
"icon": "https://baike-med-1256891581.file.myqcloud.com/2018095/29bec8d0-b25a-11e8-926b-21df1809aaee_0.png",
"position": "主任医师",
"hospital": "复旦大学附属肿瘤医院",
"doctor_type": 0,
"doctor_clickable": 1
}
]
},
"releasetime": "2023-06-15",
"direction": 1,
"doc_id": "tx00008008nqtjfk"
}
],
"article_cnt": 20
},
"seq": 0,
"traceid": "f1e74579-aca2-4ed0-9f3a-707c00bc9756",
"retcode": 0,
"bizcode": 0,
"cmd": "Recommend"
},
"header": {
"flag": 0,
"version": 0
}
}
十五、预发布示例
curl -H 'content-type: application/json' -d '{
"header": {
"version": "1.0.0",
"flag": 0
},
"body": {
"seq": 0,
"cmd": "RecommendV2",
"token": "",
"client": {
"clientIP": "192.168.1.1",
"adtag": "$adtag"
},
"payload": {
"timestamp": "1494231435",
"noncestr": "0.623706833947",
"signature": "52e050f0e82da2b7582360f516acd04a71eb67e",
"appid": "2000000000000000",
"recommend_req": {
"ad_tag": "$adtag",
"article_cnt": 10,
"extra_info": [
{
"type": "txyd_outer_userid",
"tag": "12345"
}
]
}
}
}
}' 'https://preview.baike.qq.com/api/access/json/cmd/RecommendV2'
十六、生产示例
curl -H 'content-type: application/json' -d '{
"header": {
"version": "1.0.0",
"flag": 0
},
"body": {
"seq": 0,
"cmd": "RecommendV2",
"token": "",
"client": {
"clientIP": "192.168.1.1",
"adtag": "$adtag"
},
"payload": {
"timestamp": "1494231435",
"noncestr": "0.623706833947",
"signature": "52e050f0e82da2b7582360f516acd04a71eb67e",
"appid": "2000000000000000",
"recommend_req": {
"ad_tag": "$adtag",
"article_cnt": 10,
"extra_info": [
{
"type": "txyd_outer_userid",
"tag": "12345"
}
]
}
}
}
}' 'https://h5.baike.qq.com/api/access/json/cmd/RecommendV2'