调用ApplyToken创建临时访问Token。

使用场景

申请Token的请求应该由应用服务器发起,应用服务器验证MQTT客户端的权限范围后代替客户端向MQTT服务器申请Token。详细信息,请参见Token鉴权概述

使用限制

单用户请求频率限制为100次/秒。如有特殊需求,请提交工单申请。

说明 每成功调用一次ApplyToken接口,都会计算为一次消息TPS,从而影响您的计费。计费详情,请参见计费说明

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String ApplyToken

系统规定参数。取值:ApplyToken

Actions String R

Token的权限类型,取值说明如下:

  • R:只有读权限。
  • W:只有写权限。
  • R,W:同时拥有读和写的权限,RW之间需要用逗号(,)隔开。
ExpireTime Long 1609434121000

Token失效的毫秒时间戳。允许设置的失效最小间隔是60秒,最长为30天。如果输入的取值超过30天,申请接口不会报错,但实际生效时间为30天。

示例:如果Token的失效间隔需设置为60秒,当前的系统时间毫秒时间戳为1609434061000,那么该参数的取值需设置为1609434121000,即1609434061000+60x1000之和。

InstanceId String post-cn-0pp12gl****

微消息队列MQTT版实例的ID,一定要和客户端实际使用的实例ID匹配。该实例ID在控制台实例详情页面获取。

RegionId String cn-hangzhou

微消息队列MQTT版实例所在地域(Region)。

Resources String TopicA/+

资源名称,即微消息队列MQTT版的Topic,多个Topic以逗号(,)分隔,每个Token最多运行操作100个资源。当有多个Topic时,需要按照字典顺序排序。

申请Token时注册的资源参数支持MQTT通配符语法,包含加号单级通配符(+)和井号多级通配符(#)。

例如,如果申请Token时指定Resources为“Topic1/+”,则客户端可以操作“Topic1/xxx”的任意Topic;如果申请Token时指定Resources为“Topic1/#”,则客户端可以操作“Topic1/xxx/xxx/xxx”的任意多级Topic。

说明 更多参数说明请参见公共参数服务接入点

返回数据

名称 类型 示例值 描述
RequestId String 31782AAF-D0CC-44C3-ABFD-1B500276****

公共参数,每个请求的ID都是唯一的。

Token String LzMT+XLFl5s/YWJ/MlDz4t/Lq5HC1iGU1P28HAMaxYxn8aQbALNtml7QZKl9L9kPe6LqUb95tEVo+zUqOogs9+jZwDUSzsd4X4qaD3n2TrBEuMOqKkk1Xdrvu9VBQQvIYbz7MJWZDYC3DlW7gLEr33Cuj54iIhagtBi3epStJitsssWs7otY9zhKOSZxhr49G3d0bh35mwyP18EMvDas8UlzeSozsSrujNUqZXOGK0PEBSd+rWMGDJlCt6GFmJgm2JFY7PJwf/7OOSmUYIYFs5o/PuPpoTMF+hcVXMs+0yDukIMTOzG9m3t8k36PVrghFmnK6pC3Rt3mibjW****ng==

服务端返回的Token值。

说明 请勿对返回的Token内容做任何长度、格式或规则的假设。以具体返回值为准。

示例

请求示例

http(s)://onsmqtt.cn-hangzhou.aliyuncs.com/?Action=ApplyToken
&Actions=R
&ExpireTime=1609434121000
&InstanceId=post-cn-0pp12gl****
&RegionId=cn-hangzhou
&Resources=TopicA/+
&<公共请求参数>

正常返回示例

XML格式

<ApplyTokenResponse>
      <RequestId>31782AAF-D0CC-44C3-ABFD-1B500276****</RequestId>
      <Token>LzMT+XLFl5s/YWJ/MlDz4t/Lq5HC1iGU1P28HAMaxYxn8aQbALNtml7QZKl9L9kPe6LqUb95tEVo+zUqOogs9+jZwDUSzsd4X4qaD3n2TrBEuMOqKkk1Xdrvu9VBQQvIYbz7MJWZDYC3DlW7gLEr33Cuj54iIhagtBi3epStJitsssWs7otY9zhKOSZxhr49G3d0bh35mwyP18EMvDas8UlzeSozsSrujNUqZXOGK0PEBSd+rWMGDJlCt6GFmJgm2JFY7PJwf/7OOSmUYIYFs5o/PuPpoTMF+hcVXMs+0yDukIMTOzG9m3t8k36PVrghFmnK6pC3Rt3mibjW****ng==</Token>
</ApplyTokenResponse>

JSON格式

{
  "RequestId": "31782AAF-D0CC-44C3-ABFD-1B500276****",
  "Token": "LzMT+XLFl5s/YWJ/MlDz4t/Lq5HC1iGU1P28HAMaxYxn8aQbALNtml7QZKl9L9kPe6LqUb95tEVo+zUqOogs9+jZwDUSzsd4X4qaD3n2TrBEuMOqKkk1Xdrvu9VBQQvIYbz7MJWZDYC3DlW7gLEr33Cuj54iIhagtBi3epStJitsssWs7otY9zhKOSZxhr49G3d0bh35mwyP18EMvDas8UlzeSozsSrujNUqZXOGK0PEBSd+rWMGDJlCt6GFmJgm2JFY7PJwf/7OOSmUYIYFs5o/PuPpoTMF+hcVXMs+0yDukIMTOzG9m3t8k36PVrghFmnK6pC3Rt3mibjW****ng=="
}

错误码

HttpCode 错误码 错误信息 描述
404 ApiNotSupport The specified API is not supported. 当前接口不支持,请检查。
400 ApplyTokenOverFlow You have applied for tokens too many times. Please try again later. 申请Token频率过高,系统限流,请重试。
400 CheckAccountInfoFailed An error occurred while checking the account information by the STS token. 解析STS Token账号信息失败。
400 InstancePermissionCheckFailed An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings. 实例权限校验失败,请确认MQTT实例的所属关系以及授权策略。
500 InternalError An error occurred while processing your request. Try again later. MQTT后端服务异常,请重试。
400 ParameterCheckFailed An error occurred while validating the parameters. The parameters may be missing or invalid. 参数校验失败,可能缺失或者传入值非法。
400 PermissionCheckFailed An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings. 资源权限校验失败,请检查实例、Topic和Group ID的所属权限和授权策略。
500 SystemOverFlow An error occurred while processing your request. Please try again. 系统限流,请重试。
400 InvalidParameter.%s An error occurred while validating the parameter. The parameter may be missing or invalid. 参数校验失败,可能缺失或者传入值非法。

访问错误中心查看更多错误码。