文档中心>腾讯云智能数智人

数智人 aPaas 接口调用方式

最近更新时间:2024-01-03 10:19:21

我的收藏
本文档主要描述腾讯云智能数智人 aPaas 平台接口调用方式,包括权限、公共参数、签名要求等。

一、接口调用环境

正式环境(国内):https://gw.tvs.qq.com
正式环境(国际):https://gw-sg.tvs.qq.com

二、权限申请及开通

可以通过以下2种方式开通:
1、交互数智人 apass 接口使用权限可以通过官网下单开通。
2、交互数智人 apass 接口使用权限可以通过 资产领用 页面领用,领用后即可开通。
注意:
领用资产只能领用2d精品形象交互并发权限。如果需要使用2d小样本或者3d形象则需要单独在官网下单购买交互并发。

2.1. 接口必要参数获取:

调用交互数智人apass接口必须要携带该数智人项目对应的 appkey 和 accesstoken,具体获取方式是配置平台中以下界面获取:
下述界面的登录地址是 https://xiaowei.cloud.tencent.com/ivh#/application(国内)https://xiaowei.tencentcloud.com/ivh#/application(国际),请使用腾讯云账号登录并创建一个项目,按照截图所示获取 appkey 和 accesstoken。每个项目的 appkey 和 accesstoken 都是独立的。




三、请求公共参数及签名方法

3.1.公共参数

在调用 aPaas 任一接口时,都需在 URL 中以 QueryString 形式携带以下公共参数:
参数
类型
必须
说明
appkey
string
使用 “2.1.接口必要参数获取” 到的appkey
timestamp
string
请求时间戳,单位:秒。时间戳需要和当前时间的差异不过能超过五分钟,否则会鉴权失败。
signature
string
请求签名(参考3.2计算签名)

3.2.签名方法

请求参数签名步骤如下:
1. signature 签名规则如下,这里以下为例说明(示例仅供参考)
appkey = e38267c0e86411ebb02aed82acb0ed99
accesstoken = f68f2d10ae9e4604b76fb05cf46bccec
域名路由 = https://gw.tvs.qq.com/v2/ivh/streammanager/streamservice/newsession
2. 对除 signature 之外的所有参数按字典序进行排序,作为签名原文, 目前仅有 appkey 和 timestamp 两个参数,因此排序拼接后的字符串示例为:
appkey=e38267c0e86411ebb02aed82acb0ed99&timestamp=1646636485
3. 对签名原文使用 accesstoken 进行 HmacSha256 加密,之后再进行 base64 编码。
hashBytes = HmacSha256("appkey=e38267c0e86411ebb02aed82acb0ed99&timestamp=1646636485","f68f2d10ae9e4604b76fb05cf46bccec")
signature = Base64Encode(hashBytes)
4. 得到 signature 签名值为:
BfWuaC9kmaicCggXc693uK+sZQ8qe88O4HVQNTdwZuo=
5. 将 signature 值进行 urlencode(必须进行 URL 编码,否则将导致鉴权失败偶现 )后拼接得到最终请求 URL 为:
https://gw.tvs.qq.com/v2/ivh/streammanager/streamservice/newsession?appkey=e38267c0e86411ebb02aed82acb0ed99&timestamp=1646636485&signature=BfWuaC9kmaicCggXc693uK%2BsZQ8qe88O4HVQNTdwZuo%3D

四、请求及响应结构

请求体结构
请求体分为 Header 和 Payload 两个参数,Header 中不需要传参数,每个接口的业务参数均放在 Payload 中传递。
{
"Header": {
},
"Payload": {
#业务参数
}
}
响应体结构
响应体分为 Header 和 Payload 两个参数,Header 中包含结果码、消息、以及请求唯一 ID。接口具体的返回参数将放置在 Payload 中。
{
"Header": {
"Code": 0,
"Message": "",
"RequestID": "", // 由云端生成返回
},
"Payload": {}
}