鉴权
使用 API Key 或 CheckSum 验签访问 API,并在服务端妥善保存凭证。
在 Console > Developers 中创建凭证后,即可调用 InnoPaaS 公共 API。
请依据下述规则选择鉴权方式,并参考相应请求示例完成接入;请求头的字段定义与约束见请求头契约章节。
鉴权方式选择
每个请求只能选择一种鉴权方式。对于常规 API 调用,推荐使用 API Key。
| 适用场景 | 鉴权方式 | 所需凭证或参数 |
|---|---|---|
| 常规 API 调用,优先简化接入 | API Key(推荐) | API KEY |
| 业务要求采用签名鉴权 | CheckSum | API KEY、API SECRET、Nonce、CurTime |
鉴权方式与优先级:Authorization 非空时使用 API Key;缺失或为空时使用 CheckSum。两者都发送时 Authorization 优先,API Key 失败不会回退。
API Key 鉴权
在 Console > Developers 创建 API KEY 与 API SECRET。API KEY 放入 Authorization,API SECRET 不用于此方式,也永不随请求发送。创建步骤见创建 API Key。
curl --request POST '<API_URL>' \
--header 'Content-Type: application/json;charset=utf-8' \
--header 'Authorization: Bearer <API_KEY>' \
--data-raw '<BUSINESS_JSON>'调用前请将 <API_URL>、<API_KEY> 与 <BUSINESS_JSON> 替换为实际值。Bearer 与 key 之间必须恰好一个空格;此方式不要发送 AppID、Nonce、CurTime 或 CheckSum。
请求头契约
API Key 鉴权
| 请求头 | 必填 | 说明 |
|---|---|---|
Authorization | 是 | 格式为 Bearer <API_KEY>,Bearer 与 key 之间恰好一个空格。此方式不发送 CheckSum 的 4 个请求头,也不使用 API SECRET。 |
CheckSum 鉴权
不发送 Authorization。以下 4 个请求头全部必填:
| 请求头 | 约束 |
|---|---|
AppID | 完整 API KEY 值,不是单独的 app ID。 |
Nonce | 随机字符串,≤128 字符,用于防重放。 |
CurTime | UTC unix 秒级时间戳;与服务器时间差在 5 分钟以内。 |
CheckSum | 签名算法计算的大写十六进制签名。 |
媒体上传使用 multipart/form-data,以上传端点文档为准;不要对文件上传套用 JSON 内容类型。
CheckSum 签名鉴权
CheckSum = SHA1(API_SECRET + Nonce + CurTime).toUpperCase()三段直接拼接、无分隔符;按 UTF-8 计算 SHA1;hex 结果转大写。Nonce、CurTime 必须与请求头完全一致。API SECRET 仅参与本地计算,永不上送。
curl --request POST '<API_URL>' \
--header 'Content-Type: application/json;charset=utf-8' \
--header 'AppID: <API_KEY>' \
--header 'Nonce: <NONCE>' \
--header 'CurTime: <UNIX_TIMESTAMP_SECONDS>' \
--header 'CheckSum: <CHECKSUM_UPPERCASE_HEX>' \
--data-raw '<BUSINESS_JSON>'多语言实现
const crypto = require('crypto');
const nonce = crypto.randomBytes(16).toString('hex');
const curTime = Math.floor(Date.now() / 1000).toString();
const checkSum = crypto.createHash('sha1').update(apiSecret + nonce + curTime, 'utf8').digest('hex').toUpperCase();凭证存储边界:API KEY 与 API SECRET 只能在服务端存储和使用,禁止嵌入浏览器或移动客户端代码。API SECRET 永不随请求发送。
相关文档
-
创建 API Key:在 Console 中创建 API KEY 与 API SECRET。
-
发送第一条语音通知:从开通到发起第一次语音通知。
-
API 概览:查看全部 API 端点与参数契约。
示例使用 POST;实际 HTTP 方法以各端点文档为准。示例 URL、参数与响应不构成业务合同。
最后更新于