Token是调用智能语音交互API的鉴权凭证。调用时需要携带有效Token,有效期内可重复使用,无需每次调用都重新获取。本文介绍获取方式、有效期及常见问题。
选择获取方式
|
获取方式 |
适用场景 |
|
临时调试和测试。 |
|
|
正式环境。应用使用AccessKey凭证,通过SDK获取Token并按需刷新。 |
|
|
所用编程语言没有对应SDK,或需要自行控制依赖组件。自行实现请求签名和调用逻辑。 |
Token使用与有效期
如何获取Token的过期时间?
SDK或OpenAPI响应中的 ExpireTime 表示Token的过期时间,采用秒级Unix时间戳。使用接收毫秒时间戳的日期接口时,需先将该值乘以1000;展示时间可按应用需要选择时区。
Token到期前应获取新的Token。控制台获取方式用于临时调试;正式环境通过SDK或OpenAPI获取Token,并根据 ExpireTime 管理刷新时间。
是否可以获取长期有效的Token?
不提供长期有效的Token。Token存在有效期限制,需要在过期前重新获取。
重新获取Token会使旧Token失效吗?
不会。重新获取Token不会使旧Token立即失效,旧Token在其有效期内仍可使用。
多个设备可以共用Token吗?
同一个Token在有效期内可以重复使用,也可以供多个设备使用。各设备使用的Appkey与Token应属于同一阿里云账号。
获取Token是否有次数限制?
获取Token没有次数限制。已有有效Token时可直接复用,无需为每次语音请求重新获取。
常见问题
调用语音服务时报错40020105如何处理?
Meta:APPKEY_NOT_EXIST:Appkey not exist! 表示Appkey不存在。检查Appkey是否填写正确,并确认项目与生成Token所用的AccessKey属于同一阿里云账号。使用RAM用户的AccessKey时,该用户应属于项目所在账号,并具有相应NLS权限。
获取Token返回为空或null如何处理?
检查AccessKey ID和AccessKey Secret是否正确,并查看接口返回的错误信息。
确认账号已开通智能语音交互服务。
使用RAM用户时,确认已授予获取Token所需权限。
AliyunNLSSpeechServiceAccess包含nls:CreateToken权限;已有AliyunNLSFullAccess时无需重复授予。检查系统时钟是否准确,避免请求时间戳与实际时间不一致。
服务状态可在智能语音交互控制台查看;权限可在RAM控制台管理。
授权操作请参见管理RAM用户的权限。
获取Token时报错40020503如何处理?
该错误表示RAM用户缺少语音接口权限。检查该用户是否已获得相应NLS权限,并按管理RAM用户的权限完成授权。
获取Token时报错No permission!如何处理?
该错误表示权限不足。使用RAM用户时,检查是否已授予相应NLS权限。授权操作请参见管理RAM用户的权限。
调用语音服务时Token无效或返回403如何处理?
根据接口返回的错误码和错误信息,检查Token是否填写正确、是否已过期,以及是否与Appkey所属账号匹配。过期后需获取新的Token。
获取Token时报错connect failed或Connection refused如何处理?
检查获取Token的Endpoint是否正确,并检查域名解析、HTTPS端口连接、代理和防火墙配置,确认运行环境能够访问该Endpoint。
Postman或SDK调用因时间不准确而失败,如何处理?
检查并同步系统时钟。OpenAPI的 Timestamp 应使用当前UTC时间,格式为 yyyy-MM-dd'T'HH:mm:ss'Z',例如 2026-09-28T08:00:00Z。使用本地时间生成该参数时,需先转换为UTC时间。
SDK通常根据系统时间生成请求时间戳。操作系统或Postman可使用本地时区,保持系统时钟准确即可。
自行构造请求时,如何处理签名和SignatureNonce?
每次请求使用新的 SignatureNonce,不要重复使用。出现 Specified signature is not matched with our calculation 时,检查AccessKey Secret、参数排序、URL编码和签名使用的HTTP方法是否与实际请求一致。
请求需使用AccessKey完成签名。请求参数和签名算法请参见通过OpenAPI获取Token。