腾讯医典提供专业医疗科普文章和视频的海量知识库,提供个性化推荐能力,支持给不同用户推荐不同内容,呈现瀑布流内容推荐效果。
API 的调用时机由客户侧判断,当客户侧认为当前需要调用推荐 API 获取一次最新科普内容时,可执行调用,API 接口按调用次数计费。API 只返回内容的标题和概要等信息,不返回正文全文。
接口地址
预发布环境域名: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. 使用 appserect 将上述拼接字符串通过 hmac 签名算法进行 sha256 摘要(直接 hmac 时 sha256),编码为字符串后即为此次请求的签名。 |
渠道 ID | appid | |
渠道密钥 | appserect | |
渠道标识 | 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 | |
渠道 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 | |
用户标签 | body.payload.recommend_req.user_tags | 否 | array | |
标签过滤规则 | 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 | 是 | |
手机号 | 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_are | 否 | - |
婚恋 | user_info_marriage | 否 | - |
学历 | user_info_education | 否 | - |
请求用户标签参数说明
参数名称 | 参数代码 | 类型 | 说明 |
名称 | type | string | |
数据 | 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'