登录阿里百川无线开放平台,创建应用,获得 appKey


登录淘宝开放平台后,创建应用,选择‘百川无线应用’,获得 appKey。

LB16B7sgkyWBuNjy0FpXXassXXa.png

创建成功后,登录淘宝开放平台,点击已创建应用的‘应用管理’按钮,在页面内的‘功能场景’栏中申请‘天猫精灵内容库API’权限(如未发现此 API 权限,请联系对接人员线下申请)。


登录AliGenie开发者平台,创建技能

创建技能链接:https://iap.aligenie.com/console/skill/list

选择技能类型为“内容”,选择相应技能模板,并填写好其他信息。点击下一步,并在“API 接入”信息填写界面按要求补充信息:

LB1szGwXDXYBeNkHFrdXXciuVXa.png


待填写信息包括:

  1. 第一步淘宝开放平台所创建应用的 appKey,必填,可修改;
  2. 接入方自定义身份标识 ID(数字字母下划线),必填项,值唯一,不可修改;
  3. 接入方名称,必填项,不可修改;
  4. 播放链接查询回调接口,非必填(如需要通过回调查询播放链接,请参考下述播放链接回调说明);
    填写完成后保存。


按照API文档接入系统


等待步骤一中权限申请审核通过,即可通过淘宝开放平台“应用管理-SDK下载-服务端SDK”页面下载SDK包进行接口开发。


按照 类目-专辑-音频 的结构关系,设计如下接口。其中类目信息需要三方平台自行对应到‘AliGenie 开发者平台’中已有的类目信息(如需新增类目需要提交审核),专辑和音频结构信息由三方平台自行组织好后传入。


API 入参字段说明

详见淘宝开放平台天猫精灵内容库API接口调用说明。

其中关于 extend_info 字段的填写说明如下所示。


extend_info 字段说明

extendInfo 作为扩展字段,为 JSON 格式,详细字段信息如下:


1. 版权相关信息,请在 extendInfo 中填写 limitRegion 字段

字段名称类型必填说明示例
limitRegionString限制播放区域美国
expiryTimeLong过期时间,unix时间戳形式,为从1970年1月1日到指定时间经历的秒数,单位秒1515758372
canDistributeboolean是否允许二次分发,即是否允许外发给其他平台使用
limitDeviceString限制播放的终端类型,例如内容只限制在手机端播放故事


2.内容分级

字段名称类型必填说明示例
contentRateString内容分级,暂填内容适合人群的年龄段信息0-18


3. extendInfo 作为各个不同类型内容输入的扩展字段,根据不同的内容类型输入字段有所不同:

  • 新闻类型:
字段名称类型必填说明示例
regionString新闻所属地域杭州
contentString新闻内容,文字版内容,长度300文本内容
sub_sourceString新闻子来源新华社
is_ttsBoolean是否是TTS转换的音频false


  • 儿童内容类型:
字段名称类型必填说明示例
applyAgeStartint类目选择为‘儿歌’、‘故事’、‘百科’、‘课文(教辅)’、‘英语’、‘育儿知识’时必填开始年龄1
applyAgeEndint类目选择为‘儿歌’、‘故事’、‘百科’、‘课文(教辅)’、‘英语’、‘育儿知识’时必填结束年龄12
applyAgeGrouplong类目选择为‘儿歌’、‘故事’、‘百科’、‘课文(教辅)’、‘英语’、‘育儿知识’时必填年龄层,及年龄单位,目前支持‘岁’、‘月’两种


  • AR 绘本内容:
字段名称类型必填说明示例
ar_picJSONArrayAR图片信息{
"cdnUrl": "http://example.com/arpic/a.jpg",
"position": "left",
"pageNum": 1
},
{
"cdnUrl": "http://example.com/arpic/b.jpg",
"position": "right",
"pageNum": 1
}
]
has_sublicenseboolean是否可转授权true
no_sublicense_urlString无转授权时的播放链接alipays://platformapi/startapp?appId=20000067

其中 cdnUrl 为 AR 绘本图片地址链接,position 标明是绘本的左页或者右页,pageNum 表示绘本的页数。


API 响应字段说明

成功响应:

字段名称类型说明示例
ret_codeint状态码(200正常,其他,其他异常)200
ret_msgString状态码说明success


失败响应:

字段名称类型说明示例
codeint平台错误码15
msgString平台错误信息Remote service error
sub_codeint具体业务返回错误码400
sub_msgString具体业务返回错误信息openContents[0].playUrls[0].type must match "audio


附1:播放链接回调说明:

播放链接查询回调接口是在内容方不提供固定的播放地址,需要实时获取播放地址的情况下需要填写的,由用户选填。调用该接口时将会使用平台私钥对请求进行签名,接入方需要使用平台公钥对签名进行验证。

播放链接查询回调接口需接收以下请求参数:

字段名称类型必填说明示例
sourceIdstring三方平台在AliGenie开放平台登记的sourceIdtest_source
albumIdstring存在此字段时必填节目在三方平台的原始专辑id(此值是通过内容推送接口推送至开放平台)10
contentIdstring节目在三方平台的原始id(此值是通过内容推送接口推送至开放平台)1001
requestTimelong请求时间戳,unix时间戳,单位毫秒1546852336
randomIdint请求随机数21121

signature

string签名信息signature


播放链接查询接口应当返回包含播放链接信息的 List 类型,数据格式如下:

字段名称类型必填说明示例
bitrateint音频码率128
typeString音视频类型audio/video
expireint播放链接在多长时间内有效,如每次播放都需实时查询,请填写-1,单位:秒100
urlurl音频可播放链接



签名过程:

组合字符串 sourceId + albumId (若存在) + contentId + requestTime + randomId,开放平台将对该字符串使用平台私钥进行 SHA1withRSA 签名加密,对加密结果进行 Base64 编码得到签名字段 signature 连同其它参数一同传递给接入方。

服务端收到请求后,请使用开放平台提供的公钥对签名进行验证。(为了防止重复请求攻击,服务端可对请求参数 requestTime 及 randomId 进行识别,当收到的 requestTime 值比上一个小 10 秒则认为非法,其次每个请求的 requestTime 与 randomId 拼接后的字符串必须是唯一的)


签名验证代码示例(Java)

Signature mySig = Signature.getInstance("SHA1withRSA");
String pbkeyStr = "";
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(Base64.getDecoder().decode(pbkeyStr));
PublicKey pb = f.generatePublic(keySpec);
mySig.initVerify(pb);
mySig.update(parametersStr.getBytes("UTF-8"));
if(mySig.verify(Base64.getDecoder().decode(signature))){
    //TODO
}


附2:类目名称及 ID 对应关系

  • 新闻类目
新闻类目对应Id
国际80010001
国内80010002
军事80010003
社会80010004
体育80010005
娱乐80010006
财经80010007
科技80010008
汽车80010009
房产80010010
时尚80010011
生活80010012
旅游80010013
游戏80010014
人文80010015
城市本地80010016
搞笑80010017


  • 儿童
儿童类目对应Id
儿歌80011001
童谣80011002
国学80011003
故事80011004
百科80011005
古诗80011006
宋词80011007
课文(教辅)80011008
英语80011009
育儿知识80011010


  • 绘本
绘本类目对应Id
精选绘本80020001
英语学习80020002
历史故事80020003
科技介绍80020004
组词卡片80020005


  • 娱乐
娱乐类目对应Id
游戏动漫80018001
体育80018002
影视80018003
星座80018004
综艺80018005
二次元80018006
笑话80018008
儿童笑话80018009


  • 有声书
有声书类目对应Id
人物传记80012001
佛教80012002
军事80012003
历史80012004
古风言情80012005
官场80012006
恐怖惊悚80012007
悬疑灵异80012008
推理刑侦80012009
文学名著80012010
武侠仙侠80012011
玄幻80012012
现代言情80012013
社科经管80012014
穿越80012015
评书80012016
都市现代80012017
青春校园80012018
非书籍80012019
玄幻奇幻80012020
科幻80012021
游戏竞技80012022
广播剧80012023
其他80012024
鬼故事80012025


  • 音乐
音乐类目对应Id
音乐80021001