推荐 API

最近更新时间:2024-05-15 09:13:11

我的收藏
腾讯医典提供专业医疗科普文章和视频的海量知识库,提供个性化推荐能力,支持给不同用户推荐不同内容,呈现瀑布流内容推荐效果。
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&timestamp=%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
输入参数示例为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_are
-
婚恋
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'