BatchPub
調(diào)用接口BatchPub通過自定義Topic,向指定產(chǎn)品下的多個設(shè)備,批量發(fā)送消息。
使用說明
- 單批次最多向同一產(chǎn)品下的100個設(shè)備發(fā)送消息。
- 調(diào)用本接口時,請求參數(shù)中TopicShortName與TopicTemplateName必須二選一使用。如果同時傳入TopicShortName和TopicTemplateName,則以TopicTemplateName為準(zhǔn)。
- 不支持使用BatchPub接口下發(fā)設(shè)置屬性和調(diào)用服務(wù)的指令。設(shè)置屬性,請使用接口SetDeviceProperty或SetDevicesProperty;調(diào)用服務(wù),請使用接口InvokeThingService或InvokeThingsService。
QPS限制
單個阿里云賬號調(diào)用該接口的每秒請求數(shù)(QPS)最大限制為50。
調(diào)試
您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。
請求參數(shù)
名稱 |
類型 |
是否必選 |
示例值 |
描述 |
Action | String | 是 | BatchPub | 系統(tǒng)規(guī)定參數(shù)。取值:BatchPub。 |
DeviceName.N | RepeatList | 是 | newdevice1 | 要接收消息的設(shè)備名稱。 說明
|
MessageContent | String | 是 | eyJ0ZXN0IjoidGFzayBiYXRjaHB1YiBicm9hZGNhc3QifQ== | 要發(fā)送的消息內(nèi)容。最大報文256 KB。 您需要將消息原文轉(zhuǎn)換成二進(jìn)制數(shù)據(jù),并進(jìn)行Base64編碼,從而生成消息內(nèi)容。 說明 物聯(lián)網(wǎng)平臺會先對消息內(nèi)容進(jìn)行Base64解碼,再將解碼后的對應(yīng)消息發(fā)送給設(shè)備。設(shè)備端無需進(jìn)行Base64解碼。 |
ProductKey | String | 是 | a1BwAGV**** | 要發(fā)送消息的產(chǎn)品ProductKey。 |
IotInstanceId | String | 否 | iot-cn-0pp1n8t**** | 實例ID。您可在物聯(lián)網(wǎng)平臺控制臺的實例概覽頁面,查看當(dāng)前實例的ID。 重要
實例的更多信息,請參見實例概述。 |
Qos | Integer | 否 | 0 | 指定消息的發(fā)送方式。取值:
說明 QoS=1的消息在物聯(lián)網(wǎng)平臺中最多可以保存7天。物聯(lián)網(wǎng)平臺不保存QoS=0的消息。 通信消息的更多使用說明,請參見使用限制的連接通信。 |
TopicShortName | String | 否 | get | 要發(fā)送消息的自定義Topic的后綴。自定義Topic的格式為 該參數(shù)與TopicTemplateName二選一使用。如果同時傳入TopicShortName和TopicTemplateName,則以TopicTemplateName為準(zhǔn)。 說明 指定Topic的操作權(quán)限須為訂閱,或發(fā)布和訂閱,且所有設(shè)備已訂閱該Topic。 您可通過以下途徑查看自定義Topic:
|
TopicTemplateName | String | 否 | /a1BwAGV****/${deviceName}/user/test | 要發(fā)送消息的自定義Topic的模板,自定義Topic的格式為 傳入該參數(shù)時 該參數(shù)與TopicShortName二選一使用。如果同時傳入TopicShortName和TopicTemplateName,則以TopicTemplateName為準(zhǔn)。 說明 指定Topic的操作權(quán)限須為訂閱,或發(fā)布和訂閱,且所有設(shè)備已訂閱該Topic。 您可通過以下途徑查看自定義Topic:
|
ResponseTopicTemplateName | String | 否 | /a1BwAGV****/${deviceName}/user/update | 如果需要設(shè)備接收消息返回響應(yīng)消息,需設(shè)置返回響應(yīng)消息的自定義Topic模板。Topic的格式為 傳入該參數(shù)時 說明 指定Topic的操作權(quán)限須為發(fā)布,或發(fā)布和訂閱。 |
UserProp.N.Key | String | 否 | key1 | 使用MQTT 5.0版本通信協(xié)議時,用戶自定義屬性的Key。 需要與UserProp.N.Value成對使用。 |
UserProp.N.Value | String | 否 | key1 | 使用MQTT 5.0版本通信協(xié)議時,用戶自定義屬性的Value。 需要與UserProp.N.Key成對使用。 |
CorrelationData | String | 否 | aGVsbG8%3D**** | 使用MQTT 5.0版本通信協(xié)議時,請求和響應(yīng)模式中的相關(guān)數(shù)據(jù),用戶可自定義。 消息接收方可根據(jù)相關(guān)數(shù)據(jù)處理請求。 說明 您需要將相關(guān)數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制數(shù)據(jù),并進(jìn)行Base64編碼,從而生成String類型數(shù)據(jù)。 |
PayloadFormatIndicator | Integer | 否 | 1 | 使用MQTT 5.0版本通信協(xié)議時,發(fā)布消息的有效載荷標(biāo)識,可取值:
|
ContentType | String | 否 | text | 使用MQTT 5.0版本通信協(xié)議時,發(fā)布消息的內(nèi)容類型。 應(yīng)用于存放MIME類型文件,例如,文本文件類型:text、plain。 |
MessageExpiryInterval | Long | 否 | 2 | 使用MQTT 5.0版本通信協(xié)議時,消息的過期時間,單位是秒。
|
Retained | Boolean | 否 | true | 使用MQTT 5.0版本通信協(xié)議時,該字段用于標(biāo)識是否是保留消息。
|
調(diào)用API時,除了本文介紹的該API的特有請求參數(shù),還需傳入公共請求參數(shù)。公共請求參數(shù)說明,請參見公共參數(shù)文檔。
返回數(shù)據(jù)
名稱 |
類型 |
示例值 |
描述 |
Code | String | iot.system.SystemException | 調(diào)用失敗時,返回的錯誤碼。更多信息,請參見錯誤碼。 |
ErrorMessage | String | 系統(tǒng)異常 | 調(diào)用失敗時,返回的出錯信息。 |
RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 | 阿里云為該請求生成的唯一標(biāo)識符。 |
Success | Boolean | true | 表示是否調(diào)用成功。
|
示例
請求示例
http(s)://iot.cn-shanghai.aliyuncs.com/?Action=BatchPub
&DeviceName.1=newdevice1
&MessageContent=eyJ0ZXN0IjoidGFzayBiYXRjaHB1YiBicm9hZGNhc3QifQ==
&ProductKey=a1BwAGV****
&TopicShortName=get
&<公共請求參數(shù)>
正常返回示例
XML
格式
<BatchPubResponse>
<RequestId>9E76053E-26ED-4AB4-AE58-8AFC3F1E7E8E</RequestId>
<Success>true</Success>
</BatchPubResponse>
JSON
格式
{
"RequestId": "9E76053E-26ED-4AB4-AE58-8AFC3F1E7E8E",
"Success": true
}