调用ApplyToken创建临时访问Token。

使用场景

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

使用限制

单用户请求频率限制为100次/秒。如有特殊需求,请联系云消息队列 MQTT 版技术支持,钉钉群号:35228338。

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

调试

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

请求参数

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

系统规定参数。取值:ApplyToken

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。

说明 云消息队列 MQTT 版支持匹配子级Topic,子级Topic无需在控制台创建,直接在消息收发代码中设置即可。Topic名称中的正斜线(/)用于分隔父级Topic和各子级Topic。更多信息,请参见基本概念
InstanceId String post-cn-0pp12gl****

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

ExpireTime Long 1609434121000

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

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

Actions String R

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

  • R:只有读权限,即只能订阅指定的Topic,不能向Topic生产消息。
  • W:只有写权限,即只能向指定Topic生产消息,不能订阅指定Topic。
  • R,W:同时拥有读和写的权限,即同时拥有向指定Topic生产消息或订阅指定Topic的权限。RW之间需要用逗号(,)隔开。
说明 更多参数说明请参见公共参数服务接入点

返回数据

名称 类型 示例值 描述
Token String LzMT+XLFl5s/YWJ/MlDz4t/Lq5HC1iGU1P28HAMaxYxn8aQbALNtml7QZKl9L9kPe6LqUb95tEVo+zUqOogs9+jZwDUSzsd4X4qaD3n2TrBEuMOqKkk1Xdrvu9VBQQvIYbz7MJWZDYC3DlW7gLEr33Cuj54iIhagtBi3epStJitsssWs7otY9zhKOSZxhr49G3d0bh35mwyP18EMvDas8UlzeSozsSrujNUqZXOGK0PEBSd+rWMGDJlCt6GFmJgm2JFY7PJwf/7OOSmUYIYFs5o/PuPpoTMF+hcVXMs+0yDukIMTOzG9m3t8k36PVrghFmnK6pC3Rt3mibjW****ng==

服务端返回的Token值。

说明 请勿对返回的Token内容做任何长度、格式或规则的假设。以具体返回值为准。
RequestId String 31782AAF-D0CC-44C3-ABFD-1B500276****

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

示例

请求示例

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

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/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格式

HTTP/1.1 200 OK
Content-Type:application/json

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

错误码

HttpCode 错误码 错误信息 描述
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 实例的所属关系以及授权策略。
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 的所属权限和授权策略。
400 InvalidParameter.%s An error occurred while validating the parameter. The parameter may be missing or invalid. 参数校验失败,可能缺失或者传入值非法。
500 InternalError An error occurred while processing your request. Try again later. MQTT 后端服务异常,请重试。
500 SystemOverFlow An error occurred while processing your request. Please try again. 系统限流,请重试。
404 ApiNotSupport The specified API is not supported. 当前接口不支持,请检查。

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