调用ApplyToken创建临时访问Token。
使用场景
申请Token的接口应该由应用服务器发起,应用服务器验证MQTT客户端的权限范围后代替客户端向MQTT服务器申请Token。详细信息,请参见Token鉴权概述。
使用限制
单用户请求频率限制为500次/秒。如有特殊需求,请提交工单申请。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | ApplyToken | 系统规定参数。取值:ApplyToken。 |
Actions | String | 是 | R | Token的权限类型,取值说明如下:
|
ExpireTime | Long | 是 | 1578399620000 | Token失效的毫秒时间戳,允许设置的失效最小间隔是60秒,最长为30天。如果输入的取值超过30天,申请接口不会报错,但实际生效时间为30天。 |
InstanceId | String | 是 | post-cn-0pp12gl**** | 微消息队列MQTT版实例的ID,一定要和客户端实际使用的实例ID匹配。在控制台实例详情页面获取。 |
RegionId | String | 是 | mq-internet-access | 微消息队列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-1B500276F8CD | 公共参数,每个请求的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=1578399620000
&InstanceId=post-cn-0pp12gl****
&RegionId=mq-internet-access
&Resources=TopicA/+
&<公共请求参数>
正常返回示例
XML
格式
<RequestId>31782AAF-D0CC-44C3-ABFD-1B500276F8CD</RequestId>
<Token>LzMT+XLFl5s/YWJ/MlDz4t/Lq5HC1iGU1P28HAMaxYxn8aQbALNtml7QZKl9L9kPe6LqUb95tEVo+zUqOogs9+jZwDUSzsd4X4qaD3n2TrBEuMOqKkk1Xdrvu9VBQQvIYbz7MJWZDYC3DlW7gLEr33Cuj54iIhagtBi3epStJitsssWs7otY9zhKOSZxhr49G3d0bh35mwyP18EMvDas8UlzeSozsSrujNUqZXOGK0PEBSd+rWMGDJlCt6GFmJgm2JFY7PJwf/7OOSmUYIYFs5o/PuPpoTMF+hcVXMs+0yDukIMTOzG9m3t8k36PVrghFmnK6pC3Rt3mibjW****ng==</Token>
JSON
格式
{
"RequestId": "31782AAF-D0CC-44C3-ABFD-1B500276F8CD",
"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. | 参数校验失败,可能缺失或者传入值非法。 |
访问错误中心查看更多错误码。