开发者社区> 问答> 正文

手把手学IOT服务端API编程[5、批量设备注册][step by step ALI-IOT-SERVER-API]

洵云 2018-04-29 19:36:53 1329
上一节我们介绍了设备注册,一次只能注册一个设备,在服务端的接口中也有提供一次可以进行多个设备注册的,这一节我们就来学习一下如何批量注册设备;
当然这些要注册的设备都是设备总数属于一类产品的,这个功能总的来说是通过提供要注册设备所属的产品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

























物联网 API PHP
分享到
取消 提交回答
全部回答(2)
  • 洵云
    2018-07-22 15:09:34
    这样做方便在一个产品下,同时注册多个设备;
    设备secret可以通过其它接口返回
    0 0
  • leslie的小号
    2018-07-17 16:37:01
    Re手把手学IOT服务端API编程5、批量设备注册step by step ALI-IOT-SERVER-API
    但是没有返回devicesecret啊,有什么用呢这样做
    0 0
添加回答

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程