Closed dessmann closed 5 years ago
-4是服务端返回的,麻烦您在 android 手机过滤 logcat, core D/MIIO 贴出来
过滤后的日志如下: 03-25 11:05:05.651 21247 21575 D MIIO : host:api.io.mi.com prefix:nullpath:/user/set_user_device_data method:POST params:[data:{"did":"1010266952","uid":"1404769031","type":"event","key":"dsm_q3_finger","time":1553483105.152,"value":{"fingerId":"00000001","Name":"Depe","efficacy":"","repeat":"","startTime":"2018-09-01 12:20:00","endTime":"2019-03-01 15:10:20"}}] 03-25 11:05:05.651 21247 21575 D MIIO : {"code":-4,"message":"server error","result":false}
另外,针对单条数据的更新或删除操作,该调用哪个接口?
set_user_device_data 请求参数的不需要startTime 和 endTime,需要 time。 /user/get_user_device_data 请求参数需要 time_start,time_end,不需要 time。 并且两个参数都是 long 类型的。
http://api.io.mi.com/app/user/get_user_device_data
功能:查询用户名下设备上报的属性和事件
查询的是user_device_厂商名 表
data:{
"did":"123" //设备id。 必选参数
"uid":123 //要查询的用户id 。必选参数
"key":"power" //定义与SDS表中key一致。必选参数
"type":"prop" //定义与SDS表中type一致。必选参数。可参考SDS文档中的示例
"time_start":"1473841870" //数据起点。必选参数
"time_end":"1473841880" //数据终点。必选参数
"group": //返回数据的方式,默认raw,可选值为hour、day、week、month。可选参数
"limit": //返回数据的条数,默认20,最大1000。可选参数
}
返回:
ret:{
"code":0,
"message":"ok",
"result":{}
}
http://api.io.mi.com/app/user/set_user_device_data
功能:写入用户的设备数据,支持批量
"data": {
"0": {
"uid": "xxx",
"did": "123",
"time": xxx,
"type": "xxx",
"key": "xxx",
"value": {
"xxx": "xxx",
"xxx": xxx,
}
},
"1": {
"uid": "xxx",
"did": "456",
"time": xxx,
"type": "xxx",
"key": "xxx",
"value": {
"xxx": "xxx",
"xxx": xxx,
}
},
}
这两个是写入数据和读取数据的,更新数据呢?
http://api.io.mi.com/app/user/set_user_device_data
功能:写入用户的设备数据,支持批量
"data": {
"0": {
"uid": "xxx",
"did": "123",
"time": xxx,
"type": "xxx",
"key": "xxx",
"value": {
"xxx": "xxx",
"xxx": xxx,
}
},
以上,value是自己传入的数据,怎么实现对单条数据的更新? 比如添加的时候value如下:
"value": {
"name": "111",
"age": 30,
}
如果需要把这条数据的age更改40,直接value传下面的就可以?
"value": {
"name": "111",
"age": 40,
}
数据更新的规则是怎样的?
不行,还是报错: host:api.io.mi.com prefix:nullpath:/user/set_user_device_data method:POST params: { "did":"1010266952", "uid":1404769031, "type":"event", "key":"dsm_q3_finger", "time":1553503099, "value":{ "fingerId":"00000002", "Name":"Jet", "efficacy":"", "repeat":"" } }
{"code":-4,"message":"server error","result":false}
帮忙看看参数哪里不对?
我这边代码如下,没发现问题,请再测试下,如有问题,请将设备分享给账号:894158105,同时告知下设备model及设备名称。
环境
现象
插件与小米服务器的数据交互,考虑调用以下两个接口: 1、往服务器提交数据,记为接口1 miot/service/smarthome.setDeviceData(params)
2、从服务器拉取数据,记为接口2 miot/service/smarthome.getDeviceData(params)
目前遇到的问题: 1、接口1提交时报错,服务器响应信息如下: 03-23 16:09:18.676 28470 29091 I ReactNativeJS: 'miplugin', '提交保存指纹请求, params= { "did":"1010266952", "uid":"1404769031", "type":"event", "key":"dsm_q3_finger", "time":1553328558.676, "value":{ "fingerId":"00000009", "Name":"new finger", "efficacy":"", "repeat":"", "startTime":"", "endTime":"" } } ' 03-23 16:09:18.933 28470 29091 I ReactNativeJS: 保存指纹失败,{"code":-4,"msg":"server error"}
2、接口1与接口2无法响应单条数据操作,比如针对单条数据的更新或删除操作,该调用哪个接口?
期望
1、接口1提交正常
2、明确单条数据更新或删除操作的接口名称与入参出参等定义