调用 SendMessage 从服务端应用向微消息队列 MQTT 版发送单条消息。

使用场景

SendMessage 接口为服务端应用调用,与 MQTT 客户端发送消息相互互补。服务端和客户端的使用场景区别,请参见开发指南使用指引

说明 调用 SendMessage 接口前,请确认您的微消息队列 MQTT 版实例的内核版本为 V3.3.0 或以上版本。内核版本信息可在控制台实例详情页面获取。

使用限制

SendMessage 接口的 QPS 限制为 1000。更多信息请参见 QPS 限制

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

调试

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

请求参数

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

系统规定参数。取值:SendMessage

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

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

MqttTopic String TopicA

将消息发往的微消息队列 MQTT 版的 Topic。Topic 的详细说明请参见名词解释

Payload String test

消息内容,即消息负载。建议自行做 Base64 编码,避免传输不可见字符。

RegionId String cn-hangzhou

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

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

返回数据

名称 类型 示例值 描述
MsgId String 0B736D997B7F45FF54E61C1C1B58****

消息的唯一标识,消息发送成功后服务端会返回消息 ID。

RequestId String 020F6A43-19E6-4B6E-B846-44EB31DF****

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

示例

请求示例

http(s)://onsmqtt.cn-hangzhou.aliyuncs.com/?Action=SendMessage
&InstanceId=post-cn-0pp12gl****
&MqttTopic=TopicA
&Payload=test
&RegionId=cn-hangzhou
&<公共请求参数>

正常返回示例

XML 格式

<SendMessageResponse>
        <RequestId>020F6A43-19E6-4B6E-B846-44EB31DF****</RequestId>
        <MsgId>0B736D997B7F45FF54E61C1C1B58****</MsgId>
</SendMessageResponse>

JSON 格式

{
    "RequestId": "020F6A43-19E6-4B6E-B846-44EB31DF****",
    "MsgId": "0B736D997B7F45FF54E61C1C1B58****"
}

错误码

HttpCode 错误码 错误信息 描述
404 ApiNotSupport The specified API is not supported. 当前接口不支持,请检查。
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 SendMessageFailed A storage exception occurred while sending the message. Please try again. 由于后端存储异常,消息发送失败,请重试。
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. 参数校验失败,可能缺失或者传入值非法。

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