调用ApplyToken创建临时访问Token。

使用场景

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

使用限制

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

调试

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

请求参数

名称类型是否必选示例值描述
ActionStringApplyToken

系统规定参数。取值:ApplyToken。

ActionsStringR

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

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

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

InstanceIdStringpost-cn-0pp12gl****

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

RegionIdStringmq-internet-access

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

ResourcesStringTopicA/+

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

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

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

说明 更多参数说明请参见公共参数调用方式

返回数据

名称类型示例值描述
RequestIdString31782AAF-D0CC-44C3-ABFD-1B500276F8CD

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

TokenStringLzMT+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错误码错误信息描述
404ApiNotSupportThe specified API is not supported.当前接口不支持,请检查。
400ApplyTokenOverFlowYou have applied for tokens too many times. Please try again later.申请Token频率过高,系统限流,请重试。
400CheckAccountInfoFailedAn error occurred while checking the account information by the STS token.解析STS Token账号信息失败。
400InstancePermissionCheckFailedAn error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.实例权限校验失败,请确认MQTT实例的所属关系以及授权策略。
500InternalErrorAn error occurred while processing your request. Try again later.MQTT后端服务异常,请重试。
400ParameterCheckFailedAn error occurred while validating the parameters. The parameters may be missing or invalid.参数校验失败,可能缺失或者传入值非法。
400PermissionCheckFailedAn 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的所属权限和授权策略。
500SystemOverFlowAn error occurred while processing your request. Please try again.系统限流,请重试。
400InvalidParameter.%sAn error occurred while validating the parameter. The parameter may be missing or invalid.参数校验失败,可能缺失或者传入值非法。

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