API 接口说明【必读】
发布时间:2023-09-05 17:09
一、前置条件
- 已经将调用
IP
加入服务白名单中,多个ip 用,分割 - 已经申请
appID
,appSecret
- 线上接入地址:
openapi.yizhentv.com
二、HTTP 请求结构
一个完整的 OpenAPI 请求,包含以下部分。
名称 | 是否必选 | 描述 | 示例值 |
---|---|---|---|
协议 | 是 | 通过 HTTPS 协议 |
https:// |
服务地址 | 是 | 服务接入地址 | openapi.yizhentv.com |
公共请求参数 | 是 | 一帧秒创 OpenAPI 的公共请求参数,参见后文 API 公共请求参数 |
AppID |
接口自定义请求参数 | 否 | 每个 OpenAPI 自定义的请求参数 |
TemplateID |
HTTP Method | 是 | 支持 POST 或者 GET |
POST |
三、API 公共请求参数
参数名称 | 类型 | 是否必填 | 示例值 | 说明 |
---|---|---|---|---|
appID |
string | 是 | 100001 | 应用id |
date |
string | 是 | 2022-7-11 11:15:14 | 日期格式,格式为 2022-7-11 11:15:14 |
nonce |
string | 是 | NQIAO0PNSYHX5DJJVRYUP | 签名唯一随机数。用于防止网络重放攻击,建议您每一次请求都使用不同的随机数,随机数位数无限制。 |
signType |
string | 是 | HMAC-SHA1 | 签名方法,目前只支持:HMAC-SHA1 |
signature |
string | 是 | 请求签名,用户请求的身份验证。详细签名机制,请参见后文签名机制。 | |
channel |
string | 否 | 渠道,应用ID下作渠道区分 |
四、签名机制
为了确保 API 的安全使用,调用 API 时,一帧秒创 OpenAPI 将对每个 API 请求进行身份验证,并通过签名(signature)来实现。在提交请求时,请使用 HTTPS 协议并包含签名信息。下面将介绍如何计算签名的方法和示例。
1、参与签名请求参数
参数名称 | 类型 | 是否必选 | 示例值 | 说明 |
---|---|---|---|---|
appID |
string | 是 | 112360001 | 应用id |
date |
string | 是 | 2022-7-11 11:15:14 | 日期格式,格式为 2022-7-11 11:15:14 |
nonce |
string | 是 | NQIAO0PNSYHX5DJJVRYUP | 签名唯一随机数。用于防止网络重放攻击,建议您每一次请求都使用不同的随机数,随机数位数无限制。 |
signType |
string | 是 | HMAC-SHA1 | 签名方法,目前只支持:HMAC-SHA1 |
signature |
string | 是 | 请求签名,用户请求的身份验证。详细签名机制,请参见后文签名步骤。 | |
channel |
string | 否 | shngwuzixun | 渠道 |
notifyUrl |
string | 否 | 回调通知路径,回调使用。 |
2、签名步骤
步骤1:组装待签名的字符串
第一步:筛选
- 剔除
signature
参数 - 剔除空值的参数
第二步:排序
在参数集合中,根据参数(不是参数对应的值)的第一个字符的键值ASCII码递增排序,如果遇到相同字符则按照第二个字符的键值ASCII码递增排序,以此类推。(按照参数字典序排序)
第三步:拼接
在参数集合中,把每个参数及其值组合成“参数=参数值”的格式,并且把这些参数用&字符连接起来 例如:
appID=498988&channel=shangwuzixun&date=2022-7-14 17:15:14&jobID=NQIAO0PNSYHX5DJJVRYUP&nonce=dw44u9gNATgNEvxWjCm&phone=18801402958&signType=HMAC-SHA1
步骤2:生成签名
使用 appSecret
对步骤1得出的待签名字符串进行HMAC-SHA1
算法加密,然后对签名后的字符串进行 base64
编码(不是 base64url
编码),编码规则使用 standard base64 encoding
,RFC 4648
。
签名正确示例
请求示例 (curl)
curl --location 'https://openapi.yizhentv.com/api/aigc/v1/job/submitJob' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'appID={应用id}' \
--data-urlencode 'date=2023-09-04 11:33:25' \
--data-urlencode 'nonce=NQIAO0PNSYHX5DJJVRYUP' \
--data-urlencode 'signType=HMAC-SHA1' \
--data-urlencode 'signature={签名}' \
--data-urlencode 'jobParams={"title":"诸葛亮","content":"诸葛亮(181年-234年),字孔明,是中国三国时期蜀汉的重要政治家、军事家和文学家。他以其高尚的品德、深思熟虑的决策和出色的战略布局,成功地对抗了强大的敌对势力,为蜀汉延续了生命。诸葛亮被广泛认为是智慧、谋略和忠诚的象征人物。诸葛亮以其聪明才智和卓越智谋为蜀汉立下赫赫战功,并在刘备死后成为蜀汉的丞相。他的政治智 慧和良好的治国能力广为人知,并采取一系列改革措施,加强国家实力,推动教育和学术发展。诸葛亮不仅在军事上有杰出表现,也为中国历史留下了不可磨灭的印记。","layoutType":2}'
组装后的字符串为
appID=110360021&date=2023-03-29 15:18:25&jobParams={"title":"刘彻","content":"刘彻,字恒山,是中国历史上的一位君主。他是汉朝第六位皇帝,也是西汉王朝的最后一个皇帝。刘彻出生于公元前156 年,父亲是汉景帝,母亲则是淮阳夫人。在刘彻还很小的时候,他就被封为定陶王,在南方度过了自己的童年和青少年时期。","layoutType":2}&nonce=NQIAO0PNSYHX5DJJVRYUP&signType=HMAC-SHA1
生成签名
组装后的字符串 使用 HMAC-SHA1
(密钥为 appSecret
) 签名、base64
编码后的 字符串为 :LEYZudCkSM90LTJF19sbmcPUEpI=