# 一、前言
在互联网领域,尤其现在的移动互联网时代,Feed流产品是非常常见的,比如我们每天用到的朋友圈,微博,就是一种非常典型的Feed流产品。今日头条,网易客户端等纯的新闻Feed流产品也是大家用的比较多的。同时,越来越多的工具类,财经类,等各种垂类的APP(如墨迹天气,子弹短信,富途牛牛)也会增加资讯Feed流,以提高用户粘性及留存,进而获取更大的收益。由于开发Feed流产品设计较多的技术(从数据抓取,内容提取,用户画像,推荐策略,机器学习模型等),很多的APP开发方自己建设一支Feed流团队成本很高,如果能有专业的团队能做这个事情成本相对低,将自己更多的精力放在主营业务上。犀光即是应此市场需求而成立。提供资讯内容,推荐引擎,广告变现等核心服务。
犀光已经与近百家第三方客户进行合作。在合作过程中,会遇到一些API接入的问题,本文档即是梳理接口及常见问题,使得我们的客户快速,方便的接入。
# 二、犀光Feed流展示效果
如果您成功的接入犀光Feed流,APP端的展示效果类似下图(资讯列表页和详情页):


# 三、接入方式
- 从数据提供方式上分为 H5(主要用来演示,也可以以webview形式嵌入APP), API(只提供结构化的数据,页面展示由客户端做,适合原生APP使用), SDK(正在做,敬请期待) 2.从资讯内容来源分为 用客户自己上报的内容, 用犀光的内容。客户自己提供资讯内容,犀光提供推荐引擎、相关推荐等。此方式,需要客户上传资讯内容,犀光提供推荐接口,相关推荐接口(如需要); 犀光提供资讯内容,推荐引擎,相关推荐,详情数据。此方式,用户无需上传资讯内容,只需调用犀光推荐接口,相关推荐接口,详情接口。然后由客户自己做页面展示。
# 四、接口概览
接口名称 | 接口说明 | 是否必须 | 备注 |
---|---|---|---|
推荐列表接口 | 信息流推荐接口 | 是 | |
详情接口 | 信息流频道接口 | 是 | |
用户行为反馈上报接口 | 用户在端上的操作,包括屏幕上展现了哪些内容,点击了哪些内容,点赞,点踩,点x了哪些内容,用户行为上报的越多,对用户兴趣的挖掘越准确,推荐效果越好 | 否 | |
相关推荐接口 | 一般资讯详情页的下方会有相关推荐,出和当前文章类似的资讯 | 否 | |
根据关键词搜索接口 | 根据某个词搜索资讯内容 | 否 | |
内容数据上报 | 如果客户有自己的内容,并且希望只展现自己的内容,就需要上报内容 | 否 | |
上报内容数据的删除,更新接口 | 客户对已上报内容删除,更新 | 否 | |
用户关注、订阅接口 | 用户关注主题、作者,订阅分类 | 否 | |
评论上报接口 | 如果需要对详情页支持评论,就调用 | 否 | |
评论拉取接口 | 如果需要拉取某篇资讯评论,就调用 | 否 | |
客户配置labels查询 | 根据需要查询客户APP配置的labels栏目有哪些及其位置 | 否 |
# 五、接口详细介绍
# 说明::以下接口根据需要接入
一般推荐列表和获取详情接口为必选接入。其他接口根据需要选择接入,也可以不接入.
# 推荐列表(包括各频道)接口
# 概述
此接口主要是提供”推荐“等频道列表数据,客户的服务端收到app的请求后,将请求转发犀光推荐列表接口。这里之所以建议通过客户的服务端转发,是因为在客户的服务端可以更好的控制,比如可以控制一定的流量到犀光这边。
# 注意事项
- 推荐接口出去的数据是基于
user_id
做去重的。对某个user_id
下发过的资讯是不会再次下发的。 - 返回数据中
id
和third_id
问题:犀光很多的客户自己提供数据内容,这里称为第三方内容,上报的时候,用third_id
。犀光将所有客户内容数据都存起来,于是需要一个统一的唯一标识,即id,是犀光内部用来标识一条资讯数据。推荐接口出去的数据,有id
,third_id
两个字段。如果客户自己上报内容数据,只用犀光的推荐引擎,那么只需用到third_id
;如果客户用到了犀光的内容,请用id
。 - 推荐接口出去的smfw字段请放到用户行为反馈的上报数据里面,用户犀光的小流量试验,优化改进推荐效果。
# 接口说明
- 方法: GET
- URL: https://down.xiguang.xyz/HttpService/rec2/?name=推荐&app_id=default&user_id=2020&size=10&log_id=231241&imei=415398370047505 注意,这里的
app_id
请用客户自己被分配的app_id
- 参数说明
参数名 | 参数说明 | 是否必须 | 备注 |
---|---|---|---|
app_id | 每个客户会赋予一个唯一的app_id | 是 | |
user_id | 用户唯一标识 | 是 | |
name | 客户在犀光配置平台(神灯)上配置的频道名称 | 是 | 一定要先配置频道才能获取列表数据 |
size | 拉取的数据条数 | 是 | 最大30, 建议10以下 |
log_id | 每次请求的标识 | 是 | 主要用来定位问题,随机字符串6-10位 |
imei | Android的imei值,IOS的IDFA | 是 | 用于作为每次请求的唯一性标志 |
res_type | 资讯类型 | 否 | 如果只要图文就news, 只要视频就video, 只要音频就audio; 如果想都要,不加此参数 |
loc_province | 用户所在省份 | 否 | 本地资讯频道使用,需要带此参数。直辖市的话,本字段空 |
loc_city | 用户所在城市 | 否 | 本地资讯频道使用,需要带此参数。直辖市也用此地段 |
如果需要在资讯中插入犀光的广告,请加入以下参数
参数名 | 参数说明 | 是否必须 | 备注 |
---|---|---|---|
api_version | 请求的广告服务版本,固定为1 | 是 | |
ua | user agent | 是 | |
os | 操作系统类型 | 是 | 安卓传 Android,iOS 传 iOS |
os_version | 操作系统版本 | 是 | 传具体的版本,如:Android 9.1.0版本为9.1.0 |
make | 手机品牌 | 是 | 例如华为则填HUAWEI |
model | 手机型号 | 是 | 例如HUAWEI Y600-U00 填 Y600-U00 |
density | 屏幕密度 | 否 | 如不填则按默认值取广告 |
ppi | 每英寸所有的像素 | 否 | 如不填则按默认值取广告 |
hv | 横竖屏 | 否 | 0:未知,1:竖屏,2:横屏 |
screen_width | 手机屏宽 | 是 | |
screen_height | 手机屏高 | 是 | |
android_id | Android 设备系统 id | 否 | |
udid | IOS 设备的 openuid | 否 | iOS必填 |
mac | mac 地址(android) | 是 | Android必填 |
network_type | 用户网络类型 | 是 | 值为 2g,3g,4g,5g,wifi |
carrier | 运营商 | 是 | 移动为46000或46002,联通46001,电信46003 |
oaid | 匿名设备标识符 | 否 | 若无法拿到 imei 值,建议填写此值 |
下发列表中带有广告时,广告字段,广告的展示和上报参考文档 http://report.xn88.xyz/docs/post/sdk.html
- 成功返回值: Json结构
{
"errno": 0, // 0标识成功
"log_id": "33434", // 用户请求时带的log_id
"errmsg": "ok", // 成功
"data": {
"count": 10, // 如果没有数据, count = 0
"data": [
// 资讯内容字段
{
"id": "20181113122959127941", // 资讯在犀光系统内的id
"third_id": "34345", // 第三方客户的id,和第三方客户上报时用的third_id一致。
"news_title": "文章标题", // 文章标题
"news_source": "文章的来源", // 文章来源
"site_name": "站点", // 如果文章是抓取的,抓取站点
"org_url": "http://mini.eastday.com/xxxx.html", // 原始链接,如果是音视频,这里就是播放链接
"pub_time": 1542083399, // 资讯发布时间,unix时间戳,秒单位。
"smfw": {"10001": 1}, // 犀光小流量标识。注意,这里请把smfw原封不动放到用户行为上报数据里面。用户犀光做小流量试验
"author": "作者名", // 如果客户数据没有上次作者就空,
"category": "娱乐", // 资讯分类
"type": "news", // 资讯类型, news是图文, news_video是视频, news_audio是音频
"list_images": [
"http://qiniu2.xiguangtech.com/201910/52a344b1c58646489e7f26ac4caea3db.jpg?imageView2/1/format/jpg/w/400/h/200/interlace/1/q/200",
"http://qiniu2.xiguangtech.com/201910/2dc231bcad3f49debf73e1884ddf157b.jpg?imageView2/1/format/jpg/w/400/h/200/interlace/1/q/200",
"http://qiniu2.xiguangtech.com/201910/b1cb57fff03f4b11be2180bb20247824.jpg?imageView2/1/format/jpg/w/400/h/200/interlace/1/q/200"
], // 预览图片的url数组
"click_count": 10, // 点击数量,即阅读数
"comment_cout": 10, // 评论数, 如果评论不走犀光这边,这个值就是0
"down_count": 0, // 点踩数量
"up_count": 0, // 点赞数量
"duration": 0, // 音视频时长,对应图文类值是0
"width": 0, // 视频宽度
"height": 0, // 视频长度
"rec_src": [1], //推荐方式,内部使用
},
// 下发列表中带有广告时,广告字段,广告的展示和上报参考文档 http://report.xn88.xyz/docs/post/sdk.html
{
"ad_height": 147, //广告高
"ad_width": 375, //广告宽
"adslot_id": -1, //广告位id
"api_version": 1, // 广告api版本
"id" : "ad_00393", //广告id
"image_url": "https://lobby.xiguang.xyz/adimg/393-1.jpg,https://lobby.xiguang.xyz/adimg/393-2.jpg,https://lobby.xiguang.xyz/adimg/393-3.jpg", //广告图片素材
"imp_track_url": [
"https://xiaojiding.com/HttpService/ad_track?key=1567579740164&app_id=MYSS&type=ad_zk&id=ad_00393&user_id=aaa&action_type=1&ad_show_where=1" //广告展示曝光url数组
],
"landing_url": "https://xiaojiding.com/HttpService/ad_track?key=1567579740164&app_id=MYSS&type=ad_zk&id=ad_00393&user_id=aaa&action_type=2&is_trans=1&ad_show_where=1", //广告落地页
"org_url": "xxx", //
"title": "成功不在无用的努力,而在于你是否知道真的捷径",//广告标题
"type": "ad_zk" //广告类型
}
...
]
}
}
- 失败返回值: Json结构
{
"errno" : 8,
"log_id": "34343",
"errmsg": "request parameter error",
"data": {
"count": 0,
"data": []
}
}
- 请求示例 https://down.xiguang.xyz/HttpService/rec2/?app_id=demo_news&user_id=2020&size=10&log_id=231241
# 获取详情接口
# 概述
如果用户使用的犀光内容,当通过端上客户点击某篇文章或音视频时,端需要获取详情内容,该详情接口就是通过id获取保存在犀光的资讯详情。详情内容里面的图片,音视频,是保存在犀光的cdn上。
# 注意事项
- 使用犀光的内容时,可以调用详情接口。如果客户使用的是自己的内容,可以不走犀光的详情接口。
# 接口说明
- 方法: GET
- URL:https://down.xiguang.xyz/HttpService/get_news_detail?id=20190111031528577404&app_id=demo_news&user_id=woh&log_id=3434
- 参数说明:
参数名 | 参数说明 | 是否必须 | 备注 |
---|---|---|---|
id | 资讯id | 是 | |
app_id | 犀光分配的客户标识 | 是 | |
user_id | 用户标识 | 是 | |
log_id | 每次请求的标识 | 否 | 主要用来定位问题,可以用随机字符串 |
- 成功返回:Json结构
{
"audio_url": "", // 如果是音频的话,该地址不空,音频播放地址
"author": "", // 作者
"cagetory": "娱乐", // 资讯分类
"content": [ // 详情内容
{
"data": " 日本:今起开征“出境税” 每人1000日元 ",
"type": "text" // 一段文本
},
{
"data": "http://qiniu2.xiguangtech.com/201901/1c78a43c12a1411584805cc6117ae9f0.jpg?imageView2/1/format/jpg",
"height": 0,
"type": "img", // 一段图片
"width": 0
}
],
"create_time": 1547176528510,
"duration": 0, // 音视频播放时长
"errmsg": "success",
"errno": 0,
"id": "20190111031528577404", // 资讯id
"news_source": "数字之道", // 抓取源
"news_title": "日本为办奥运开征出境税?每人需交63元2019有望创收31亿元", // 资讯标题
"org_url": "https://www.sohu.com/a/288177546_157078", // 原始链接
"pub_time": 1547204700, // 发布时间,秒单位
"site_name": "数字之道", // 站点名称
"sub_cagetory": "", // 子分类
"third_id": "",
"topic": "",
"type": 1 // 资讯类型, 1:图文; 3:视频; 5:音频; 9:图集
}
- 失败返回: Json结构
{
errno: 4113,
errmsg: "do not have data"
}
# 获取详情H5页面
# 概述
如果用户使用的犀光内容,当通过端上客户点击某篇文章或音视频时,端需要获取详情内容,并且以H5页面展示的方式出现。
# 注意事项
- 调用H5页面请求时需要带上
user_id
用户唯一标识和app_id
接入方唯一标识
# H5页面说明
- 方法: GET
- URL:http://lobby.xn88.xyz/template/page.html?app_id=default&id=2019062410391101394&user_id=zhangsan&v=1563994014577
- 参数说明:
参数名 | 参数说明 | 是否必须 | 备注 |
---|---|---|---|
id | 资讯id | 是 | |
app_id | 犀光分配的客户标识,注册账号 | 是 | |
user_id | 用户标识 | 是 | |
v | 时间戳 | 否 | |
imei | Android的imei值,IOS的IDFA | 是 |
- 成功返回:H5页面示例

# 相关推荐接口
# 概述
此接口用来在资讯详情页下面出相关推荐列表所用。该接口用来出和当前的资讯相关的资讯,不能刷,两次间隔几秒的调用,结果会一样,除非两次调用之间,有新的相关内容入库。这个接口不会根据user_id做去重。
# 注意事项
- 相关推荐接口返回的数据格式和上面的推荐接口返回数据格式,在层级上有区别。
- 如果当前资讯是第三方客户自己的内容,请用third_id传;如果是用犀光的内容,请用
id
传。
# 接口说明
- 方法: GET
- URL: https://down.xiguang.xyz/HttpService/rel?app_id=default&id=20180715210114355326&third_id=34343&log_id=545454&size=5
- 参数说明:
参数名 | 参数说明 | 是否必须 | 备注 |
---|---|---|---|
app_id | 每个客户会赋予一个唯一的app_id | 是 | |
third_id | 第三方资讯标识 | 是 | third_id和id必有其一 |
id | 犀光资讯内容标识 | 是 | third_id和id必有其一 |
size | 拉取的数据条数 | 是 | 建议10以下 |
log_id | 每次请求的标识 | 是 | 主要用来定位问题,可以用随机字符串 |
- 成功返回值: Json结构, 和推荐接口出去的数据格式一致。
{
"errno": 0, // 0标识成功
"errmsg": "success", // 错误信息
"count": 4, // 返回的条数
"data":[
{
"id": "2018111312333", // 如果是犀光的资讯内容
"third_id": "34343", // 如果是客户自己的资讯内容, id和third_id必有一个有值
"category": "生活", // 新闻分类
"org_url": "https://m.weibo.cn/xxx.html", // 原始网页地址,音视频的话,就是播放地址
"site_name": "微博", // 站点名
"pub_time": 1543434345000, // 发布时间,单位毫秒
"news_title": "新闻标题", // 标题
"news_source": "来源", // 新闻来源
"type": "news", // 新闻类型,图文news, 视频news_video, 音频news_audio
"author": "xxx", // 作者
"click_count": 3, // 阅读数
"up_count": 2 // 点赞数
}
]
}
- 失败返回值: Json结构
{
"errno" : -1,
"errmsg": "request parameter error" // 错误信息
}
# 用户行为上报(简版)
# 概述
此接口用来第三方客户上报用户在端上的行为。比如在屏幕上展现了哪些资讯(推荐接口下发10条数据下去,不一定都展现在屏幕上了,因为用户可能没有滑到下面),展现反馈有上报时机的问题,一般来说最长60s需要上报一次,也可以用户点击了一篇文章等行为触发展现上报。用户在推荐列表或频道列表中点击行为需要上报,如果是音视频的话,最好上报播放完成反馈或跳过的反馈。另外,如果端上有不喜欢,点赞,分享等行为,最好也上报上了,用于积累用户的个人兴趣。 必选行为:点击/播放完成 可选行为:展现,跳过,不喜欢,点赞,分享
# 注意事项:
- 有些字段是整形数字,而不是数字字符串。
- post请求时加headers ---- -H 'Content-Type: application/json;charset=UTF-8'
- 数据编码必须是utf-8
# 接口说明: POST / GET
# POST
- 方法:POST
- URL : https://down.xiguang.xyz/HttpService/ReceiveLog
- 请求包体 : Json结构
{
"log_id": "12234", // **必选**,每次请求时唯一标识,可以随机生成
"action_type": 1, // **必选**,1:展现; 2:点击; 3:播放完成; 4:播放中间跳过; 6:不喜欢; 7:点赞; 8:关注; 9:分享; 20:相关推荐下发,21:相关推荐展现; 22:相关推荐点击, 30:小说下发,31:小说展现,32:小说点击,统计时长,40:漫画下发,41:漫画展现,42:漫画点击,时长统计,50:相关推荐转列表下发,52:相关推荐转列表点击
"app_id": "default", // **必选**,分配给客户的唯一标识。和其它接口中app_id含义一致
"timestamp": 1543453452, // **必选**,第三方调用接口发生的时间戳,秒单位
"user_id": "6F21FF3C3BC3799343077953E66", // **必选**,用户唯一标识
"smfw": {"1001":"1"}, // 可选,推荐接口出去的smfw字段,带到这里
"os": "ios", // 可选,android, ios
"cip": "1.24.81.170", // 可选,客户端ip
"data":[
{
"id":"20181113454545", // **必选**,id和third_id必选其一,如果是犀光内容,此字段必须有值。
"third_id":"343454", // **必选**,id和third_id必选其一,如果是客户提供的内容,此字段必须有值。
"rtype": "news", // **必选**,资讯类型,news:图文, video:视频, audio:音频
"delivery_time": 1543434343, // 可选, 下发时间
"log_id": "565656", // 可选,该资讯在请求推荐接口或频道接口时的请求log_id,用于定位问题
"show_time": 1545566666, // 可选, 在屏幕上展现时的时间戳,单位s
"duration": 30, // 可选,如果是音视频,播放时间,单位s,如果是新闻,阅读时间,单位s
"smfw": {"1001":"1"}, // 可选,推荐接口出去的smfw字段,带到这里
"from": "推荐", // 可选,该条资讯的出现在哪个频道下
"dislike_reason": { // 可选:不喜欢原因
"common": [1,2], // 可选:1:看过了,2:内容不行
"author": "某某", // 可选
"category": ["娱乐","啊三"],// 可选
"tags": ["穿搭","品相"] //// 可选
}
}
]
}
# GET
方法:GET
URL : https://down.xiguang.xyz/HttpService/ReceiveLog?data={"log_id":"asofawapcvxbcnztest","cuid":"176505acd7","data":[{"rtype":"news","id":"20190711163626815399"}],"action_type":2,"app_id":"test","timestamp":"1562835081000"}
参数说明:
参数名 | 参数说明 | 是否必须 | 备注 |
---|---|---|---|
data | GET 参数包体 | 是 | 使用get请求时将post用的body体放入data中使用 |
- 成功返回值: Json结构
{
"errno": 0,
"errmsg": ""
}
- 出错返回值: Json结构
{
"errno": -1,
"errmsg": "parameter error"
}
# 内容数据上报
# 概述
此接口主要是接入方有数据,推送给犀光,并在推荐接口中使用此数据。
# 注意事项
- 您必须拥有您的
app_id
才能使用此接口。 - 如果
content
没有,则最好能将tags
和category
上传,以提升推荐效果;另外list_images
也最好上传,这样推荐出去的内容,会有图片.
# 接口说明
方法: POST
URL: https://down.xiguang.xyz/HttpService2/push_news
请求包体: JSON结构,用户可以根据需要选择
## 1.急速简易版(只有必填字段):只有最基本内容,按时间推荐
{
"app_id": "qiyu_zixun", //犀光为您分配的app_id
"timestamp": 1535881033, //时间戳: 单位 秒 当前时间
"log_id": "raYl5bKc", // 日志标识,随机字符串
"data": [
{
"third_id": "qiyu_zixun_001", //第三方客户内容唯一标识
"news_title":"奇遇资讯001", //标题
"type": 1, //1 资讯; 3 视频; 5 音频; 9 图片
"pub_time": 1535881033, //新闻发布时间 秒
},
...
]
}
## 2.简单版(必填字段 + 资讯内容):有咨询内容,通过奇遇算法提取信息,准确推送
{
"app_id": "qiyu_zixun", //犀光为您分配的app_id
"timestamp": 1535881033, //时间戳: 单位 秒 当前时间
"log_id": "raYl5bKc", // 日志标识,随机字符串
"data": [
{
"third_id": "qiyu_zixun_001", //第三方客户内容唯一标识
"news_title":"奇遇资讯001", //标题
"type": 1, //1 资讯; 3 视频; 5 音频; 9 图片
"pub_time": 1535881033, //新闻发布时间 秒
"content":[ // 咨询内容,段落用{}相隔,
{
"type":"text", // 段落属性,text、img
"data":"对于很多女性来说,..." // 段落内容
},
{
"type":"img", // 段落属性,text、img
"data":"http://uri.jpg?imageView2/2/format/jpg", // 段落内容
"width":600,
"height":400,
"size":27340
},
{
"type":"text",
"data":"其实,在生活中,..."
},
...
]
},
...
]
}
## 3.简单版(必填字段 + 上报标签):通过上报标签信息,奇遇推荐算法准确推荐
{
"app_id": "qiyu_zixun", //犀光为您分配的app_id
"timestamp": 1535881033, //时间戳: 单位 秒 当前时间
"log_id": "raYl5bKc", // 日志标识,随机字符串
"data": [
{
"third_id": "qiyu_zixun_001", //第三方客户内容唯一标识
"news_title":"奇遇资讯001", //标题
"type": 1, //1 资讯; 3 视频; 5 音频; 9 图片
"pub_time": 1535881033, //新闻发布时间 秒
"category":["房产", "买房"], //分类,数组
"subcategory": ["新房", "二手房"], //子分类,数组
"tags":["户型图","卧室","尚城"], //内容标签,数组
},
...
]
}
## 4.精准(必填字段 +资讯内容+ 上报标签):通过犀光算法处理和上报标签信息更精准的进行推荐
{
"app_id": "qiyu_zixun", //犀光为您分配的app_id
"timestamp": 1535881033, //时间戳: 单位 秒 当前时间
"log_id": "raYl5bKc", // 日志标识,随机字符串
"data": [
{
"third_id": "qiyu_zixun_001", //第三方客户内容唯一标识
"news_title":"奇遇资讯001", //标题
"type": 1, //1 资讯; 3 视频; 5 音频; 9 图片
"pub_time": 1535881033, //新闻发布时间 秒
"category":["房产", "买房"], //分类,数组
"subcategory": ["新房", "二手房"], //子分类,数组
"tags":["户型图","卧室","尚城"], //内容标签,数组
"content":[ // 咨询内容,段落用{}相隔,
{
"type":"text", // 段落属性,text、img
"data":"对于很多女性来说,..." // 段落内容
},
{
"type":"img", // 段落属性,text、img
"data":"http://uri.jpg?imageView2/2/format/jpg", // 段落内容
"width":600, //图片宽度(可选)
"height":400, //图片高度(可选)
"size":27340 //图片大小(可选)
},
{
"type":"text",
"data":"其实,在生活中,..."
},
...
]
},
...
]
}
## 5.全字段(必填字段 +资讯内容+ 上报标签 + 其他属性)
// 通过犀光算法处理和上报标签信息精准全面的进行推荐
// 通过添加新闻内容信息字段使得新闻在展示时更加全面
{
"app_id": "qiyu_zixun", //犀光为您分配的app_id
"timestamp": 1535881033, //时间戳: 单位 秒 当前时间
"log_id": "raYl5bKc", // 日志标识,随机字符串
"data": [
{
"third_id": "qiyu_zixun_001", //第三方客户内容唯一标识
"news_title":"奇遇资讯001", //标题
"type": 1, //1 资讯; 3 视频; 5 音频; 9 图片
"pub_time": 1535881033, //新闻发布时间 秒
"category":["房产", "买房"], //分类,数组
"subcategory": ["新房", "二手房"], //子分类,数组
"tags":["户型图","卧室","尚城"], //内容标签,数组
"content":[ // 咨询内容,段落用{}相隔,
{
"type":"text", // 段落属性,text、img
"data":"对于很多女性来说,..." // 段落内容
},
{
"type":"img", // 段落属性,text、img
"data":"http://uri.jpg?imageView2/2/format/jpg", // 段落内容
"width":600, //图片宽度(可选)合适的宽高,更加好看
"height":400, //图片高度(可选)
"size":27340 //图片大小(可选)
},
{
"type":"text",
"data":"其实,在生活中,..."
},
...,
],
"list_images":["url1", "url2",...], //封面图, 列表展示
"site_name": "xxx", //新闻网站名称, 列表展示,详情展示
"org_url":"xxx", //原始连接; 如果是音视频,且要上传7N,必须是可下载的音视频连接 (非必填),
"news_source": "xxx", //
"image_type": "jpg", //jpg, png...
"up_count":0, //点赞量
"down_count": 0, //点踩量
"comment_count": 0, //评论量
"click_count": 0, //点击量
"is_hot":0, // 0:非热点, 1热点
"is_high_video": 0, // 0: 否, 1:是
"duration": 0, //时长:视频音频使用,
"is_advertisement": 0 , // 广告内容 0:否, 1:是
"author": "", //作者名
"channel": "", //频道
"topic": "", // 主题名称(类似分类概念)
"has_attachment": 0, // 存在附件:0:否, 1:是
"audio_url": "", //音频链接
},
...
]
}
- 返回值: JSON结构
{
errno: 0, // 0 成功; others 失败
errmsg: "success" //错误信息
}
- 例子
curl -XPOST 'https://down.xiguang.xyz/HttpService2/push_news' -H "Content-Type: application/json" -d '{
"app_id":"test",
"timestamp":1532597459,
"log_id": "raYl5bKc",
"data":[
{
"third_id":"test_xxfdfafaa",
"news_title":"半包6万装修109平米的房子,效果终于出来了!-中骏尚城装修",
"type": 1,
"category":"房产",
"tags":["户型图","卧室","尚城"]
"categories_weight":{"时事":1,"房产":2},
"sub_categories_weight":{"生活":1,"趣事":2}
}
]
}'
如果执行成功,返回如下:
{
"errno":0,
"errmsg":"success"
}
# 内容上报数据查询
# 概述
此接口主要是接入方对上报数据是否已经成功入犀光库进行查询;是否推送成功,可以调用该接口查看
# 注意事项
1.注:app_id
是分配给您的;third_id
是推送时的第三方客户资讯内容标识; 例子测试的就是 "test_xxfdfafaa"
2.上报后需要经过内容数据处理,会有一定的延迟
# 接口说明
方法: GET
URL: https://down.xiguang.xyz/HttpService2/get_news_detail?app_id=test&third_id=test_xxfdfafaa 20191010182217364898
参数说明
参数名 | 参数说明 | 是否必须 | 备注 |
---|---|---|---|
app_id | 每个客户会赋予一个唯一的app_id | 是 | |
third_id | 客户上传新闻的标识 | 是 |
如果执行成功,返回如下:
{
"attention": [
],
"attentions": [
"户型图",
"卧室",
"尚城"
],
"audio_url": "",
"author": "",
"cagetory": "",
"categories": [
"房产"
],
"channel": "",
"click_count": 0,
"comment_count": 0,
"content": [
],
"create_time": 1557042468384,
"down_count": 0,
"duration": 0,
"errmsg": "success",
"errno": 0,
"expireTime": "2019-06-09 00:00:00",
"from_sources": [
"test1"
],
"id": "20190505154748236915",
"image_type": "",
"is_advertisement": 0,
"is_hot": 0,
"is_pass_directly": 1,
"is_permanent": 0,
"is_used_src_resource": 1,
"list_images": [
],
"new_tags": [
],
"news_source": "",
"news_title": "半包6万装修109平米的房子,效果终于出来了!-中骏尚城装修",
"num_content_images": 0,
"org_url": "",
"pub_time": 0,
"site_name": "test1",
"src_pub_time": 0,
"sub_cagetory": "上海",
"third_id": "test_xxfdfafaa",
"topic": "",
"type": 1,
"up_count": 0
}
# 内容数据更新
# 概述
此接口主要是接入方对上报数据进行更新,推送给犀光。
# 注意事项
- 此接口和上报接口一致,只要在
json
体中加入"is_update":1
即可
# 接口说明
方法: POST
URL: https://down.xiguang.xyz/HttpService2/push_news
请求包体: JSON结构
## "is_update":1, // 上传内容执行更新操作
{
"app_id": "qiyu_zixun", //犀光为您分配的app_id
"timestamp": 1535881033, //时间戳: 单位 秒 当前时间
"log_id": "raYl5bKc", // 日志标识,随机字符串
"is_update":1, // 上传内容执行更新操作
"data": [
{
"third_id": "qiyu_zixun_001", //第三方客户内容唯一标识
"news_title":"奇遇资讯001", //标题
"type": 1, //1 资讯; 3 视频; 5 音频; 9 图片
"pub_time": 1535881033, //新闻发布时间 秒
},
...
]
}
# 删除上报内容接口
# 概述
此接口用来删除已经上报的内容。
# 注意事项
- 必须有app_id才能调用
# 接口说明
- 方法: POST
- URL: https://down.xiguang.xyz/HttpService2/remove_third_news
- 包体: Json结构
{
"app_id": "xxx", //犀光为您分配的app_id (必填)
"sign": "xxx", //签名 (必填)
"log_id": "raYl5bKc", // 日志标识,随机字符串
"timestamp": xxxx, //时间戳: 单位 秒 当前时间 (必填)
"count":1, //一次最多10条(必填)
"third_ids":["xxx",...] //要删除的第三方资源id (必填)
}
- 返回值: Json结构
{
errno: 0, //0 成功; others 失败
errmsg: "success" //错误信息
}
- 请求样例
curl -XPOST 'https://down.xiguang.xyz/HttpService2/remove_third_news' -H "Content-Type: application/json" -d '{ "app_id":"test", "sign":"63ff29dbf9136322d87a47a5a237702f8fd488cc2cd72d898567be6bb4a666d3", "timestamp":1532597459, "count":1, "third_ids":["test_xxfdfafaa"] } }'
# 用户关注、订阅接口
# 概述
用户关注作者,用户订阅分类,使用此接口。
# 注意事项:
post请求时加headers ---- -H 'Content-Type: application/json;charset=UTF-8' 数据编码必须是utf-8
# 接口说明:
- 方法:POST
- URL : https://down.xiguang.xyz/HttpService/focus/star
- 请求包体 : Json结构
{
"app_id": "1212121", // 必须,客户唯一标识
"user_id": "03da17eb", // 必须,用户唯一标识
"focus_type": 0, // 必须,关注类型。0:topic_star(关注主题), 1:authors_start(关注作者),2:categories_subscribe(订阅分类)
"data": [
{
"id": "关注的id", // 关注的主题id, 或者作者id, 或者分类id
"name":topic_name, // 主题名称,或者作者名称,或者分类名称。
"timestamp": 1530721135 //时间戳
},
{
"id": "关注的id", // 关注的主题id, 或者作者id, 或者分类id
"name":topic_name, // 主题名称,或者作者名称,或者分类名称。
"timestamp": 1530721135 //时间戳
}
]
}
- 成功返回值: Json结构
{
"errno": 0,
"errmsg": "success"
}
- 出错返回值: Json结构
{
"errno": -1,
"errmsg": "parameter error"
}
# 用户取消关注、订阅接口
# 概述
用户取消关注作者,用户取消订阅分类,使用此接口。
# 注意事项:
post请求时加headers ---- -H 'Content-Type: application/json;charset=UTF-8' 数据编码必须是utf-8
# 接口说明:
- 方法:POST
- URL : https://down.xiguang.xyz/HttpService/focus/cancel
- 请求包体 : Json结构
{
"app_id": "1212121", // 必须,客户唯一标识
"user_id": "03da17eb", // 必须,用户唯一标识
"focus_type": 0, // 必须,关注类型。0:topic_star(关注主题), 1:authors_start(关注作者),2:categories_subscribe(订阅分类)
"data": [
{
"id": "关注的id", // 关注的主题id, 或者作者id, 或者分类id
"name":topic_name, // 主题名称,或者作者名称,或者分类名称。
"timestamp": 1530721135 //时间戳
},
{
"id": "关注的id",
"name":topic_name,
"timestamp": 1530721135
}
]
}
- 成功返回值: Json结构
{
"errno": 0,
"errmsg": "success"
}
- 出错返回值: Json结构
{
"errno": -1,
"errmsg": "parameter error"
}
# 提交评论接口
# 概述
一般来说,评论业务是第三方客户自己做比较好。如果用户量很小,自己做成本较大的话,犀光也提供了简易的评论服务。客户直接调用犀光的评论接口即可。
# 注意事项:
数据编码必须是utf-8
# 接口说明:
- 方法:POST
- URL : https://down.xiguang.xyz/HttpService/put_cmt
- 请求包体:
{
"app_id": "default", // 必须,接入客户唯一标识
"user_id": "03da17eb", // 必须,用户唯一标识
"user_icon": "", // 用户头像图片地址
"user_name": "zhangsan", // 必须,用户昵称
"comment": "秀儿,是你吗", // 必须,评论内容字符串长度300
"id": "201908291644418707167", // 资讯id,评论那条新闻
"timestamp": 1570761616 // 时间戳,单位s秒
}
- 成功返回值: Json结构
{
"errno": 0,
"errmsg": "success"
}
- 出错返回值: Json结构
{
"errno": -1,
"errmsg": "parameter error"
}
# 拉取评论接口
# 概述
一般来说,评论业务是第三方客户自己做比较好。如果用户量很小,自己做成本较大的话,犀光也提供了简易的评论服务。客户直接调用犀光的评论接口即可。通过此接口拉取评论。
# 注意事项:
数据编码必须是utf-8
# 接口说明:
- 方法:GET
- URL : https://down.xiguang.xyz/HttpService/get_cmt
- 参数 :
参数名 | 参数说明 | 是否必须 | 备注 |
---|---|---|---|
app_id | 客户标识 | 是 | |
id | 新闻id | 是 | |
page | 分页页码 | 是 | |
num | 拉取当前页数量 | 是 |
- 成功返回值: Json结构
{
"count": 2,
"data": [
{
"comment": "shengghoasdkasdffas是的分开康师傅的是放大来看阿斯蒂芬",
"user_id": "csj1234",
"timestamp": "1538992443",
"app_id": "blocklover",
"user_icon": "www.google.com",
"user_name": "ckrisers",
"id": "20180924215238330789"
},
{
"comment": "shengghoasdkasdffas是的分开康师傅的是放大来看阿斯蒂芬",
"user_id": "csj1234",
"timestamp": "1538992442",
"app_id": "blocklover",
"user_icon": "www.google.com",
"user_name": "ckrisers",
"id": "20180924215238330789"
}
],
"total": 26,
"errno": 0,
"errmsg": "success"
}
- 出错返回值: Json结构
{
"errno": -1,
"errmsg": "parameter error"
}
# 根据关键词搜索新闻接口
# 概述
每篇资讯,犀光都会对内容做挖掘,包括一些关键词。用户可以通过某关键词搜索资讯。
# 注意事项:
数据编码必须是utf-8
# 接口说明:
- 方法:GET
- URL : https://down.xiguang.xyz/HttpService/rel/keywords?app_id=qiyu&keyword=大众&size=5&log_id=asdfasd
- 参数 :
参数名 | 参数说明 | 是否必须 | 备注 |
---|---|---|---|
app_id | 客户标识 | 是 | |
keyword | 关键词 | 是 | 默认最多10 |
size | 获取资讯的数量 | 是 | |
log_id | 每次请求的标识 | 随机字符串6-10个 |
- 成功返回值: Json结构
{
"errno": 0,
"errmsg": "success",
"data": {
"count": 4,
"data": [
{
"author": "毫无戒备之心",
"cagetory": "汽车",
"categories": "汽车",
"click_count": 0,
"comment_count": 0,
"down_count": 0,
"duration": 0,
"id": "20191010184809778646",
"list_images": [
"http://qiniu2.xiguangtech.com/201910/52a344b1c58646489e7f26ac4caea3db.jpg?imageView2/1/format/jpg/w/400/h/200/interlace/1/q/200",
"http://qiniu2.xiguangtech.com/201910/2dc231bcad3f49debf73e1884ddf157b.jpg?imageView2/1/format/jpg/w/400/h/200/interlace/1/q/200",
"http://qiniu2.xiguangtech.com/201910/b1cb57fff03f4b11be2180bb20247824.jpg?imageView2/1/format/jpg/w/400/h/200/interlace/1/q/200"
],
"news_source": "车壹哥",
"news_title": "17.78万上顶配,2.0t榨出231匹,车长4647mm配bose音响",
"org_url": "http://mini.eastday.com/a/191010183433464.html",
"pub_time": 1570704489,
"rec_src": [
20
],
"site_name": "东方头条",
"smfw": {
},
"third_id": "",
"type": "news",
"up_count": 0,
"user_defined": "",
"create_time": 1570704489
},...]
}
}
- 出错返回值: Json结构
{
"count": 0,
"data": {
},
"errno": -1,
"errmsg": "None is not of type 'string'"
}
# 客户APP配置labels查询
# 概述
客户APP配置栏目信息和位置信息,方便第三方API接入后动态调整栏目
# 注意事项:
数据编码必须是utf-8
# 接口说明:
- 方法:GET
- URL : https://down.xiguang.xyz/HttpService/app_labels?app_id=demo&log_id=0OM0qMmo
- 参数 :
参数名 | 参数说明 | 是否必须 | 备注 |
---|---|---|---|
app_id | 客户标识 | 是 | |
log_id | 每次请求的标识 | 随机字符串6-10个 |
- 成功返回值: Json结构
{
"errno": 0,
"errmsg": "success",
"data": [
{
"tab_id": "demo1556593024",
"position": 0,
"name": "推荐"
},
{
"tab_id": "demo1546515084OGuhCo",
"position": 1,
"name": "娱乐"
},
{
"tab_id": "demo1546515102ysTgsp",
"position": 2,
"name": "体育"
},
{
"tab_id": "demo1546515141gsfGmp",
"position": 3,
"name": "图集"
},
{
"tab_id": "demo1546515188BrhcWl",
"position": 4,
"name": "视频"
},
{
"tab_id": "demo1546515118DSOrrO",
"position": 5,
"name": "热点"
}
]
}
- 出错返回值: Json结构
{
"errno": 0,
"errmsg": "can't get label conf",
"data": []
}
# 拉取数据成功反馈接口
# 概述
客户拉取犀光数据成功后,回传拉取到的资讯id,犀光推荐根据反馈id进行推荐。拉取资讯内容用户使用。
# 注意事项:
数据编码必须是utf-8
# 接口说明:
- 方法:POST
- URL : https://down.xiguang.xyz/HttpService/sync_success
- 请求包体 : Json结构
{
"app_id": "appId", // 必须,客户唯一标识
"log_id": "asdcxa", // 本次请求的标识,随机6-12位字符串
"data": [ // 犀光资讯id,资讯唯一性标识
"20190902152413094423", "20190902152403309863"
]
}
- 成功返回值: Json结构
{
"errno": 0,
"errmsg": "success"
}
- 出错返回值: Json结构
{
"errno": -1,
"errmsg": "soxxxx"
}