调用该接口在单个设备上调用指定服务。
使用说明
定义产品物模型服务时,已设置服务调用方式。因此,调用本接口时,物联网平台会根据请求参数Identifier值,选择服务对应的调用方式。
使用限制
同步调用服务,最大超时时间为5秒。若5秒内服务器未收到回复,则返回超时错误。异步调用服务无最大超时时间限制。
QPS限制
单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | InvokeThingService |
系统规定参数。取值:InvokeThingService。 |
Args | String | 是 | {"param1":1} |
要启用服务的入参信息,数据格式为JSON String,例如Args={"param1":1}。 若此参数为空时,需传入 Args={} 。 |
Identifier | String | 是 | Set |
服务的标识符。设备的服务Identifier,可在控制台中,设备所属的产品的功能定义中查看;或调用QueryThingModel,从返回的物模型信息中查看。 说明 如果是自定义(非默认)模块testFb下服务testService,则参数值为testFb:testService。
|
IotInstanceId | String | 否 | iot_instc_pu****_c*-v64******** |
实例ID。您可在物联网平台控制台的实例概览页面,查看当前实例的ID。 注意
实例的更多信息,请参见实例概述。 |
IotId | String | 否 | Q7uOhVRdZRRlDnTLv****00100 |
要调用服务的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。 说明 如果传入该参数,则无需传入ProductKey和DeviceName。IotId作为设备唯一标识符,和ProductKey与DeviceName组合是一一对应的关系。
如果您同时传入IotId和ProductKey与DeviceName组合,则以IotId为准。 |
ProductKey | String | 否 | a1BwAGV**** |
要调用服务的设备所隶属的产品ProductKey。 说明 如果传入该参数,需同时传入DeviceName。
|
DeviceName | String | 否 | light |
要调用服务所属设备的DeviceName。 说明 如果传入该参数,需同时传入ProductKey。
|
调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见公共参数文档。
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
Code | String | iot.system.SystemException |
调用失败时,返回的错误码。更多信息,请参见错误码。 |
Data | Struct |
调用成功时,返回的数据。 |
|
MessageId | String | abcabcabc1234**** |
云端向设备下发服务调用的消息ID。 |
Result | String | {"param1":1} |
同步调用服务,返回的调用结果。 异步调用服务,不返回此参数。 |
ErrorMessage | String | 系统异常 |
调用失败时,返回的出错信息。 |
RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 |
阿里云为该请求生成的唯一标识符。 |
Success | Boolean | true |
表示是否调用成功。
|
示例
请求示例
https://iot.cn-shanghai.aliyuncs.com/?Action=InvokeThingService
&ProductKey=a1BwAGV****
&DeviceName=device1
&Identifier=service1
&Args=%7B%22param1%22%3A1%7D
&<公共请求参数>
正常返回示例
XML
格式
<InvokeThingServiceResponse>
<Data>
<Result>{"code":200,"data":{},"id":"100686","message":"success","version":"1.0"}</Result>
<MessageId>abcabc123</MessageId>
</Data>
<RequestId>A44C818E-FA7F-4765-B1E7-01D14AE01C6A</RequestId>
<Success>true</Success>
</InvokeThingServiceResponse>
JSON
格式
{
"Data": {
"Result": "{\"code\":200,\"data\":{},\"id\":\"100686\",\"message\":\"success\",\"version\":\"1.0\"}",
"MessageId": "abcabc123"
},
"RequestId": "A44C818E-FA7F-4765-B1E7-01D14AE01C6A",
"Success": true
}