获取Token

更新时间:
复制 MD 格式

Token是调用智能语音交互API的鉴权凭证。调用时需要携带有效Token,有效期内可重复使用,无需每次调用都重新获取。本文介绍获取方式、有效期及常见问题。

选择获取方式

获取方式

适用场景

通过控制台获取Token

临时调试和测试。

通过SDK获取Token

正式环境。应用使用AccessKey凭证,通过SDK获取Token并按需刷新。

通过OpenAPI获取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权限。

可在智能语音交互控制台的全部项目页面查看项目Appkey,在RAM控制台检查AccessKey所属身份及其权限。

获取Token返回为空或null如何处理?

  1. 检查AccessKey ID和AccessKey Secret是否正确,并查看接口返回的错误信息。

  2. 确认账号已开通智能语音交互服务。

  3. 使用RAM用户时,确认已授予获取Token所需权限。AliyunNLSSpeechServiceAccess 包含 nls:CreateToken 权限;已有 AliyunNLSFullAccess 时无需重复授予。

  4. 检查系统时钟是否准确,避免请求时间戳与实际时间不一致。

服务状态可在智能语音交互控制台查看;权限可在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。