作者:阿里云MVP洵云
上节回顾:手把手学IOT服务端API编程之四设备注册|MVP讲堂
上一节我们介绍了设备注册,一次只能注册一个设备,在服务端的接口中也有提供一次可以进行多个设备注册的,这一节我们就来学习一下如何批量注册设备;
当然这些要注册的设备都是设备总数属于一类产品的,这个功能总的来说是通过提供要注册设备所属的产品key值,和要注册设备的名字列表,进行注册,当注册成功后,
会返回注册成功的信息和appid值,这个值代表这次注册一串数字,方便后续产品和设备的维护;接下来我们看一下具体实现;
1、脚本实现:
我们将设备名称列表的输入为一串字符串,其中使用逗号进行分割,因为一般设备名称是不包含逗号的;所以这个设计在逻辑上是可行的;
所以对于输入参数页面上,还是提供产品的key值和设备名称列表两个;
产品KEY: <input type="text" name="pkey5">
批量设备名称: <input type="text" name="devnames5">
而在实际的实现代码中,我们只需要使用get函数提取这个变量就可以了:
$pkey = $_GET["pkey5"];
$devnames = $_GET["devnames5"];
接着引用查询设备列表的接口:
$request = new Iot\ApplyDeviceWithNamesRequest();
通过查看ApplyDeviceWithNamesRequest.php文件,可以知道只需要调用setDeviceNames 和setProductKey两个函数配置产品的key值和设备名称列表即可;
由于输入的设备名称列表要求是字符串数组,所以我们需要通过php的系统函数将字符串转换成字符串数组:
$devnames_array=explode(',',$devnames);
然后再传入配置设备名称列表的函数作为参数:setDeviceNames
调用通用的网络查询操作后,最后对返回信息进行分析;首先显示常用的requestid:
echo 'RequestId :'.$response->RequestId.'<br>';
然后返回是否创建好的标记success,和ApplyId:
echo 'RequestId :'.$response->RequestId.'<br>';
echo 'Success :'.$response->Success.'<br>';
echo 'ApplyId :'.$response->ApplyId.'<br>';
2、实际测试:
打开浏览器,转到我们框架脚本页面,输入相关信息然后提交,设备名称列表这里,我们创建三个设备名称为hello1,hello2和hello3,所以名称列表的输入字符串;登陆到iot的控制台,
为:hello1,hello2,hello3;登陆到iot的控制台,
对应产品的页面下面的设备管理可以看到我们刚创建好的设备名称分别为hello1到hello3,表示我们批量创建设备的操作是成功的;
具体向关截图如下:
timelapse:
http://www.xunyun17.xyz/ioto/step5-ApplyDeviceWithNamesRequest.mp4