以下说明适用于所有语音审核 RESTful API:
仅支持 HTTPS 协议。
请求头的 Content-type
为 application/json;charset=utf-8
。
请求头的 Authorization
字段需要你自行生成,生成方法参考 RESTful API 认证。
公共请求参数:每次请求都需要传入以下参数:
参数 | 类型 | 描述 |
---|---|---|
appid |
String | 你的声网 App ID。必须使用待审核的频道所对应的 App ID。 |
cname |
String | 待审核的频道名。 |
uid |
String | 标识语音审核服务(相当于频道内一个不发流的客户端)的 UID,例如"527841" 。需满足以下条件:
|
公共响应参数:每次调用接口,响应包体都包含以下参数 :
参数 | 类型 | 描述 |
---|---|---|
code |
Number | 响应状态码。 |
请求方法:POST
请求 URL:https://api.agora.io/v1/apps/{appid}/cloud_recording/acquire
除公共参数外,请求包体中需要传入以下参数:
参数 | 类型 | 描述 |
---|---|---|
clientRequest |
Object | 客户请求参数,包含 resourceExpiredHour 字段。resourceExpiredHour 为 Number 类型,单位为小时,用于设置语音审核 RESTful API 的调用时效,从成功开启审核任务并获得 sid (审核 ID)后开始计算。超时后,你将无法调用 /query 、/update 和 /stop 接口。resourceExpiredHour 需大于等于 1 , 且小于等于 720 ,默认值为 72 。 |
除公共参数外,响应包体中包含以下字段:
resourceId
:String 类型,审核资源 ID。一个审核资源 ID 只能用于开启一个审核任务。resourceId
时效为 5 分钟,你需要在 5 分钟内使用该 resourceId
调用 /start 接口开启审核任务,如果超时则需要重新获取。/acquire
获取多个 resourceId
而导致资源过期。请求行
POST https://api.agora.io/v1/apps/{yourappid}/cloud_recording/acquire HTTPS/1.1
请求包体
{
"clientRequest": {
"resourceExpiredHour": 24
},
"cname": "httpClient463224",
"uid": "527841"
}
响应包体
{
"Code": 200,
"Body": {
"resourceId": "JyvK8nXHuV1BE64GDkAaBGEscvtHW7v8BrQoRPCHxmeVxwY22-x-kv4GdPcjZeMzoCBUCOr9q-k6wBWMC7SaAkZ_4nO3JLqYwM1bL1n6wKnnD9EC9waxJboci9KUz2WZ4YJrmcJmA7xWkzs_L3AnNwdtcI1kr_u1cWFmi9BWAWAlNd7S7gfoGuH0tGi6CNaOomvr7-ILjPXdCYwgty1hwT6tbAuaW1eqR0kOYTO0Z1SobpBxu1czSFh1GbzGvTZG"
}
}
请求方法:POST
请求 URL:https://api.agora.io/v1/apps/{appid}/cloud_recording/resourceid/{resourceid}/mode/{mode}/start
除公共参数外,请求 URL 中包含以下参数:
参数 | 类型 | 描述 |
---|---|---|
resourceid |
String | 通过 /acquire 请求获取的审核资源 ID。 |
mode |
String | 审核模式,支持以下模式:individual ):分开审核频道内每个 UID 的音频流。mix ):将频道内所有(或指定)UID 的音频流混合为一路流后进行审核。 |
除公共参数外,请求包体中需要传入以下参数:
参数 | 类型 | 描述 |
---|---|---|
clientRequest |
Object | 特定的客户请求参数,对于该请求包含以下参数:token :String 类型,用于鉴权的动态密钥。如果你的项目已启用 App 证书,则务必在该参数中传入你项目的动态密钥。详见使用 Token 鉴权。recordingConfig :JSON Object 类型,声网频道内音频流订阅的详细设置,声网会将你订阅的音频流发送给第三方语音审核服务。详见 recordingConfig 成员列表。extensionServiceConfig :JSON Object 类型,第三方语音审核服务的详细设置。详见extensionServiceConfig 成员列表。 |
channelType
:Number 类型,频道场景。频道场景必须与声网 RTC SDK 的设置一致,否则可能导致问题。
0
:(默认)通信场景1
:直播场景streamTypes
:Number 类型,订阅的媒体流类型。使用语音审核时,你需要将其设置为 0
,即仅订阅音频。
0
:仅订阅音频1
:仅订阅视频2
:(默认)订阅音频和视频streamMode
:(选填)String 类型,单流模式下(mode
为 individual
),媒体流的输出模式。
default
:默认模式。审核过程中音频转码。decryptionMode
:(选填)Number 类型,解密方案。如果频道设置了加密,该参数必须设置。解密方式必须与频道设置的加密方式一致。
0
:(默认)不加密。1
:AES_128_XTS 加密模式。128 位 AES 加密,XTS 模式。2
:AES_128_ECB 加密模式。128 位 AES 加密,ECB 模式。3
:AES_256_XTS 加密模式。256 位 AES 加密,XTS 模式。4
:SM4_128_ECB 加密模式。128 位 SM4 加密,ECB 模式。5
:AES_128_GCM 加密模式。128 位 AES 加密,GCM 模式。6
:AES_256_GCM 加密模式。256 位 AES 加密,GCM 模式。7
:AES_128_GCM2 加密模式。128 位 AES 加密,GCM 模式。 相比于 AES_128_GCM 加密模式,AES_128_GCM2 加密模式安全性更高且需要设置密钥和盐。8
:AES_256_GCM2 加密模式。256 位 AES 加密,GCM 模式。相比于 AES_256_GCM 加密模式,AES_256_GCM2 加密模式安全性更高且需要设置密钥和盐。secret
:(选填)String 类型,启用解密模式后,设置的解密密码。
salt
:(选填)Base64 编码、32 位字节。启用解密模式后,设置解密的盐。如果 decryptionMode
为 7 或 8,则需要设置该值。
audioProfile
:(选填)Number 类型,设置输出音频的采样率,码率,编码模式和声道数。目前仅适用于合流模式。
0
:(默认)48 kHz 采样率,音乐编码,单声道,编码码率约 48 Kbps1
:48 kHz 采样率,音乐编码,单声道,编码码率约 128 Kbps2
:48 kHz 采样率,音乐编码,双声道,编码码率约 192 KbpsmaxIdleTime
:(选填)Number 类型,最长空闲频道时间。默认值为 30 秒,该值需大于等于 5,且小于等于 (232-1)。如果频道内无用户的状态持续超过该时间,审核服务会自动退出。
maxIdleTime
,审核服务会自动退出。subscribeAudioUids
:(选填)JSONArray 类型,由 UID 组成的数组,指定订阅哪几个 UID 的音频流。数组长度不得超过 32,不推荐使用空数组。
unSubscribeAudioUids
: (选填)JSONArray 类型,由 UID 组成的数组,指定不订阅哪几个 UID 的音频流。审核服务会订阅频道内除指定 UID 外所有 UID 的音频流。数组长度不得超过 32,不推荐使用空数组。subscribeAudioUids
和 unSubscribeAudioUids
不能同时设置。
subscribeAudioUids
和 unSubscribeAudioUids
不能同时设置。subscribeUidGroup
: (选填)Number 类型,预估的订阅人数峰值。在单流模式下,为必填参数。举例来说,如果 subscribeAudioUids
为 ["100","101","102"]
,则订阅人数为 3 人,该参数需要设置为 1
。
0
: 1 到 2 人1
: 3 到 7 人2
: 8 到 12 人3
: 13 到 17 人errorHandlePolicy
:(选填)String 类型,错误处理策略。目前仅可设为:
"error_abort"
:(默认)当扩展服务发生错误后,订阅等其他服务均停止。apiVersion
:(选填)String 类型,语音审核 RESTful API 的版本号,默认为 "v1"
。
extensionServices
:JSONArray 类型,由每个扩展服务的设置组成的数组。使用语音审核时需要设置以下参数:
serviceName
:String 类型,扩展服务的名称。可设为:
shumei_voice_scan
:数美语音审核。yitu_voice_async_scan
:依图语音审核。tupu_voice_scan
:图普语音审核。errorHandlePolicy
:(选填)String 类型。错误处理策略。目前仅可设为:
"error_abort"
:(默认)当扩展服务发生错误后,订阅等其他服务均停止。streamTypes
:Number 类型,要审核的媒体流类型。使用语音审核时,你需要将其设置为 0
,即仅审核音频。
0
:仅订阅音频1
:仅订阅视频2
:(默认)订阅音频和视频serviceParam
:JSON Object 类型,扩展服务的具体参数设置。当使用语音审核时,你需要设置以下字段:
数美
字段 | 类型 | 描述 |
---|---|---|
accessKey |
String | 访问密钥中的 Key ID,用于识别访问者的身份。 |
appId |
String | 数美项目使用的 app ID,用于标识你的项目应用。 该 appId 是向数美获取的项目 ID,请勿使用声网的 app ID。 |
callback |
String | 接收语音审核结果回调的服务器地址。 |
type |
String | 识别类型,包含如下类型:
如需组合以上类型,你可以将类型用下划线连接,例如: POLITICAL_PORN_MOAN_AD ,表示用于广告、色情、涉政和娇喘审核。 |
businessType |
String | 识别业务类型,包含如下类型:
必须设置 type 和 businessType 其中一个。 |
eventId |
String | 识别场景,包含如下场景:
|
returnAllText |
Int | (选填) 返回全量或特定的审核结果:
|
returnPreText |
Int | (选填) 返回违规片段的文本内容:
|
returnPreAudio |
Int | (选填) 返回违规片段的音频链接:
|
依图
字段 | 类型 | 描述 |
---|---|---|
callbackAddr |
String | 接收语音审核结果的 HTTP 服务器地址。 |
apiData |
Object | 向语音审核服务传入的字段值,包含以下字段。 |
apiData.accessKey |
String | 访问密钥中的 Key ID,用于识别访问者的身份。 |
apiData.secretKey |
String | 访问密钥中的 Key Secret,用于验证签名的密钥。 |
apiData.bizType |
String | 向依图获取的 AppId。 |
apiData.callbackSeed |
String | 随机字符串,用于回调通知请求中的签名。默认为空。 |
图普
字段名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
secretId |
String | 是 | 图普控制台开通的审核应用 id。 |
callback |
String | 是 | 接收审核结果的回调地址。 |
timestamp |
Number | 是 | 时间戳,用于签名。 |
nonce |
Number | 是 | 随机数,用于签名(整数或浮点数)。 |
signature |
String | 是 | 签名。 |
callbackRules |
Number | 否 | 回调规则,默认为 0(有违规才回调),需要回调所有结果可设置为 1。 |
roomId |
String | 否 | 可选参数,用于透传回去。 |
userId |
String | 否 | 可选参数,用于透传回去。 |
forumId |
String | 否 | 可选参数,用于透传回去。 |
图普采用的数字证书签名算法是:RSA-SHA256
,签名输出类型是:base64
,生成签名的具体步骤如下:
secretId
、timestamp
、nonce
用英文半角逗号,
相连,得到 sign_string
;RSA-SHA256
签名,输出为 base64
格式,得到参数 signature
的值。点击管理公钥证书查看如何生成私钥,及如何上传你的公钥用于数字签名的认证。
除公共参数外,响应包体中包含以下字段:
resourceId
:String 类型,该审核任务使用的审核资源 ID。sid
:String 类型,该审核任务的唯一标识。请求行
POST https://api.agora.io/v1/apps/{yourappid}/cloud_recording/resourceid/{resourceid}/mode/{mode}/start HTTPS/1.1
请求包体
以单流模式为例:
(1)依图示例
{
"uid": "527841",
"cname": "httpClient463224",
"clientRequest": {
"token": "<token if any>",
"recordingConfig": {
"channelType": 1,
"maxIdleTime": 30,
"streamTypes": 0,
"subscribeUidGroup": 0
},
"extensionServiceConfig": {
"apiVersion": "v1",
"errorHandlePolicy": "error_abort",
"extensionServices": [
{
"errorHandlePolicy": "error_abort",
"serviceName": "yitu_voice_async_scan",
"serviceParam": {
"apiData": {
"accessKey": "xxxx",
"bizType": "xxxx",
"callbackSeed": "xxxx",
"secretKey": "xxxx"
},
"callbackAddr": "http://xxxx"
},
"streamTypes": 0
}
]
}
}
}
(2)数美示例
{
"uid": "527841",
"cname": "httpClient463224",
"clientRequest": {
"token": "<token if any>",
"recordingConfig": {
"channelType": 1,
"maxIdleTime": 30,
"streamTypes": 0,
"subscribeUidGroup": 0
},
"extensionServiceConfig": {
"apiVersion": "v1",
"errorHandlePolicy": "error_abort",
"extensionServices": [
{
"errorHandlePolicy": "error_abort",
"serviceName": "shumei_voice_scan",
"serviceParam": {
"accessKey": "xxxx",
"appId": "xxxx",
"callback": "xxxx",
"type": "xxxx",
"businessType": "xxxx",
"eventId": "xxxx"
},
"streamTypes": 0
}
]
}
}
}
(3)图普示例
{
"cname": "{cname}",
"requestId": 10000,
"uid": "{uid}",
"clientRequest": {
"recordingConfig": {
"channelType": 0,
"maxIdleTime": 30,
"streamTypes": 0
},
"extensionServiceConfig": {
"errorHandlePolicy": "error_abort",
"extensionServices": [
{
"serviceName": "tupu_voice_scan",
"errorHandlePolicy": "error_abort",
"streamTypes": 0,
"serviceParam": {
"secretId": "secretid",
"timestamp": 0,
"nonce": 0.1,
"signature": "signature",
"callback": "callback"
}
}
]
}
}
}
响应包体
{
"Code": 200,
"Body": {
"sid": "38f8e3cfdc474cd56fc1ceba380d7e1a",
"resourceId": "JyvK8nXHuV1BE64GDkAaBGEscvtHW7v8BrQoRPCHxmeVxwY22-x-kv4GdPcjZeMzoCBUCOr9q-k6wBWMC7SaAkZ_4nO3JLqYwM1bL1n6wKnnD9EC9waxJboci9KUz2WZ4YJrmcJmA7xWkzs_L3AnNwdtcI1kr_u1cWFmi9BWAWAlNd7S7gfoGuH0tGi6CNaOomvr7-ILjPXdCYwgty1hwT6tbAuaW1eqR0kOYTO0Z1SobpBxu1czSFh1GbzGvTZG"
}
}
请求方法:GET
请求 URL:https://api.agora.io/v1/apps/{appid}/cloud_recording/resourceid/{resourceid}/sid/{sid}/mode/{mode}/query
除公共参数外,请求 URL 中包含以下参数:
参数 | 类型 | 描述 |
---|---|---|
resourceid | String | 通过 /acquire 请求获取的审核资源 ID。 |
sid | String | 通过 /start 请求获取的审核任务 ID。 |
mode | String | 审核模式,支持以下模式:individual ):分开审核频道内每个 UID 的音频流。mix ):将频道内所有(或指定)UID 的音频流混合为一路流后进行审核。 |
除公共参数外,响应包体中包含以下字段:
resourceId
:String 类型,语音审核的审核资源 ID。sid
:String 类型,通过 /start
请求获取的审核任务 ID。serverResponse
:JSON Object 类型,服务器返回的具体信息。subServiceStatus
:JSON Object 类型,子模块的服务状态。
extensionServiceState
:JSONArray 类型,由各个扩展服务的当前状态组成的数组。serviceName
:String 类型,扩展服务的名称:shumei_voice_scan
:数美语音审核。yitu_voice_async_scan
:依图语音审核。streamState
:JSONArray 类型,该扩展服务的状态。当选择数美或依图语音审核时,返回以下参数:uid
:Number 类型,用户 UID,表示审核的是哪个用户的媒体流。合流模式下,uid
总为 0
。streamType
:String 类型,审核的内容类型。"audio"
指纯音频。status
:审核的状态。"inProgress"
:审核正在进行中。"failed"
:审核发生错误。请求行
GET https://api.agora.io/v1/apps/{yourappid}/cloud_recording/resourceid/{resourceid}/sid/{sid}/mode/{mode}/query HTTPS/1.1
响应包体
以单流模式为例:
{
"Code": 200,
"Body": {
"resourceId": "Etkl6g-zSB7EpP-Da1zN67U-tt4soO0PZ0SW6nl1EGu8MSTU96ioRjKOO-3PgKb-TBNM_pEudbZ3Udy2wxOZRNgb3dpH__glt5_D-6ikPjkde3CfHeZtsa5fffoZjnfk865Q271HRmP--p8RZm0A-7S39HFBJIPtugfjyzocNzTTw2_xttK97rKU-B1wl1uurKmiRj4453L7ETNLeM6NKskNqYZ0holdfQs3ijC7WNNgdlWVeYTBKT83G6jC99eXKBnBqs-6Lu1_C9S9qprRIE7js-xgLLX3TIEwi69milO8b-I958yKyn6fLX3PNSNshZZUVUfIlqMPYbe7NtRXC-HRY2YM3xq0K-4-wPVPfCA",
"sid": "e36fb8add64933c71c315784b93ca5cb",
"serverResponse": {
"extensionServiceState": [
{
"serviceName": "yitu_voice_async_scan", // 或 shumei_voice_scan
"streamState": [
{
"status": "inProgress",
"streamType": "audio",
"uid": "0"
}
]
}
],
"subServiceStatus": {
"recordingService": "serviceInProgress",
"mediaDistributeService": "serviceInProgress"
}
}
}
}
请求方法:POST
请求 URL:https://api.agora.io/v1/apps/{appid}/cloud_recording/resourceid/{resourceid}/sid/{sid}/mode/{mode}/update
除公共参数外,请求 URL 中包含以下参数:
参数 | 类型 | 描述 |
---|---|---|
resourceid | String | 通过 /acquire 请求获取的审核资源 ID。 |
sid | String | 通过 /start 请求获取的审核任务 ID。 |
mode | String | 审核模式,支持以下模式:individual ):分开审核频道内每个 UID 的音频流。mix ):将频道内所有(或指定)UID 的音频流混合为一路流后进行审核。 |
除公共参数外,请求包体中需要传入以下参数:
参数 | 类型 | 描述 |
---|---|---|
clientRequest |
Object | 客户请求参数,对于该接口包含以下字段:streamSubscribe :JSON Object 类型,用于更新音频流的订阅名单。 |
streamSubscribe
包含以下成员:
audioUidList
:(选填)JSON Object 类型。音频订阅名单。如果 recordingConfig
中的 streamTypes
为 1
(只订阅视频),设置该参数会报错。
除公共参数外,响应包体中包含以下字段:
resourceId
:String 类型,语音审核的审核资源 ID。sid
:String 类型,通过 /start
请求获取的审核任务 ID。请求行
POST https://api.agora.io/v1/apps/{appid}/cloud_recording/resourceid/{resourceid}/sid/{sid}/mode/{mode}/update HTTPS/1.1
请求包体
{
"uid": "527841",
"cname": "httpClient463224",
"clientRequest": {
"streamSubscribe": {
"audioUidList": {
"subscribeAudioUids": ["#allstream#"]
}
}
}
}
响应包体
{
"Code": 200,
"Body": {
"sid": "38f8e3cfdc474cd56fc1ceba380d7e1a",
"resourceId": "JyvK8nXHuV1BE64GDkAaBGEscvtHW7v8BrQoRPCHxmeVxwY22-x-kv4GdPcjZeMzoCBUCOr9q-k6wBWMC7SaAkZ_4nO3JLqYwM1bL1n6wKnnD9EC9waxJboci9KUz2WZ4YJrmcJmA7xWkzs_L3AnNwdtcI1kr_u1cWFmi9BWAWAlNd7S7gfoGuH0tGi6CNaOomvr7-ILjPXdCYwgty1hwT6tbAuaW1eqR0kOYTO0Z1SobpBxu1czSFh1GbzGvTZG"
}
}
请求方法:POST
请求 URL:https://api.agora.io/v1/apps/{appid}/cloud_recording/resourceid/{resourceid}/sid/{sid}/mode/{mode}/stop
除公共参数外,请求 URL 中包含以下参数:
参数 | 类型 | 描述 |
---|---|---|
resourceid |
String | 通过 /acquire 请求获取的审核资源 ID。 |
sid |
String | 通过 /start 请求获取的审核任务 ID。 |
mode |
String | 审核模式,支持以下模式:individual ):分开审核频道内每个 UID 的音频流。mix ):将频道内所有(或指定)UID 的音频流混合为一路流后进行审核。 |
除公共参数外,请求包体中需要传入以下参数:
参数 | 类型 | 描述 |
---|---|---|
clientRequest |
Object | 特定的客户请求参数,对于该接口无需填入任何内容,为一个空的 JSON Object。 |
除公共参数外,响应包体中包含以下字段:
resourceId
:String 类型,语音审核使用的审核资源 ID。sid
:String 类型,审核任务 ID。成功开始语音审核后,你会得到一个 sid
, 是该审核任务的唯一标识。请求行
POST https://api.agora.io/v1/apps/{yourappid}/cloud_recording/resourceid/{resourceid}/sid/{sid}/mode/{mode}/stop HTTPS/1.1
请求包体
{
"cname": "httpClient463224",
"uid": "527841",
"clientRequest": {}
}
响应包体
{
"Code": 200,
"Body": {
"sid": "38f8e3cfdc474cd56fc1ceba380d7e1a",
"resourceId": "JyvK8nXHuV1BE64GDkAaBGEscvtHW7v8BrQoRPCHxmeVxwY22-x-kv4GdPcjZeMzoCBUCOr9q-k6wBWMC7SaAkZ_4nO3JLqYwM1bL1n6wKnnD9EC9waxJboci9KUz2WZ4YJrmcJmA7xWkzs_L3AnNwdtcI1kr_u1cWFmi9BWAWAlNd7S7gfoGuH0tGi6CNaOomvr7-ILjPXdCYwgty1hwT6tbAuaW1eqR0kOYTO0Z1SobpBxu1czSFh1GbzGvTZG"
}
}
语音审核结果会以 HTTP 请求的形式直接发送到你在 extensionServiceConfig
中设置的回调地址。回调参数详见对应的第三方官方文档:
除此之外,回调还可能包含以下字段:
channelName
:String 类型,此次审核的声网频道名。uid
:String 类型,语音审核的用户所属 UID。uid
为 0 表示语音审核为合流模式。streamType
:String 类型,语音审核所审核的内容类型。"audio"
表示纯音频。状态 | 描述 |
---|---|
"serviceIdle" | 子模块服务未开始。 |
"serviceStarted" | 子模块服务已开始。 |
"serviceReady" | 子模块服务已就绪。 |
"serviceInProgress" | 子模块服务正在进行中。 |
"serviceCompleted" | 审核内容已全部上传至语音审核。 |
"servicePartialCompleted" | 审核内容部分上传至语音审核。 |
"serviceValidationFailed" | 语音审核验证失败。例如 extensionServiceConfig 中 apiData 填写错误。 |
"serviceAbnormal" | 子模块状态异常。 |
状态码 | 描述 |
---|---|
200 | 请求成功。 |
201 | 成功请求并创建了新的资源。 |
206 | 整个审核过程中没有用户发流。 |
400 | 请求的语法错误(如参数错误)。如果你填入的声网 App ID 没有开通第三方语音审核服务,也会返回 400。 |
401 | 未经授权的(客户 ID/客户密钥匹配错误)。 |
404 | 服务器无法根据请求找到资源(网页)。 |
500 | 服务器内部错误,无法完成请求。 |
504 | 服务器内部错误。充当网关或代理的服务器未从远端服务器获取请求。 |
下面仅列出使用语音审核 RESTful API 过程中常见的错误码或错误信息,如果遇到其他错误,请联系声网技术支持。
2
:参数不合法,请确保参数类型正确、大小写正确、必填的参数均已填写。
7
:审核已经在进行中 ,请勿用同一个 resourceId
重复 /start
请求。
8
:HTTP 请求头部字段错误,有以下几种情况:
Content-type
错误,请确保 Content-type
为 application/json;charset=utf-8
。
cloud_recording
字段。49
:使用同一个审核资源 ID(resourceId
) 和审核任务 ID(sid
)重复 /stop
请求。
53
:审核已经在进行中。当采用相同参数再次调用 /acquire
获得新的 resourceId
并用于 /start
请求时,会发生该错误。如需发起多路审核,需要在 /acquire
方法中填入不同的 UID。
62
:调用 /acquire
请求时,如果出现该错误,表示你填入的 App ID 没有开通第三方语音审核服务,或者没有开通云录制服务。
65
:多为网络抖动引起。使用相同 resourceId
重试即可。
432
:请求参数错误。请求参数不合法。
433
:审核资源 ID 过期。获得 resourceId
后必须在 5 分钟内开始审核。请重新调用 /acquire
获取新的 resourceId
。
435
:频道内没有用户加入,无审核对象。
501
:审核正在退出。该错误可能在调用了 /stop
接口后再调用 /query
时发生。
1001
:resource ID 解密失败。请重新调用 /acquire
获取新的 resource ID。
1003
:声网 App ID 或者审核任务 ID(sid
)与审核资源 ID(resourceId
) 不匹配。请确保在一个审核周期内声网 App ID 和 resourceId
一一对应,并且 sid
和 resourceId
一一对应。
1013
:频道名不合法。频道名必须为长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):
26 个小写英文字母 a-z
"invalid appid"
:无效的声网 App ID。请确保声网 App ID 填写正确。如果你已经确认 App ID 填写正确,但仍出现该错误,请联系技术支持。
"no Route matched with those values
": 该错误可能由 HTTP 方法填写错误导致,例如将 GET 方法填写为 POST;也可能由请求 URL 填写错误导致。
"Invalid authentication credentials"
:该错误可能由以下原因导致。 如果你已经排除以下原因,但仍出现该错误,请提交工单。
Authorization
字段的值 Basic <Authorization>
缺少 Basic
。Content-type
字段的值 application/json;charset=utf-8
大小写不正确或包含空格。