天天看點

手把手學IOT服務端API程式設計[7、查詢裝置申請資訊]|MVP講堂

作者:阿裡雲MVP洵雲

上節回顧: 手把手學IOT服務端API程式設計[6、查詢裝置申請狀态]|MVP講堂

上節介紹裝置注冊狀态查詢後,其實在實際使用過程中,有些使用者在裝置注冊完成後,不但想知道裝置的申請狀态,而且還想要知道裝置申請的資訊。

比如這個裝置注冊成功後的具體id值,名稱和secret.本節就對于有這種需求的情況,如何通過服務端提供接口來實作相應的功能;基于裝置注冊申請的appid号在

服務端的資料庫中是唯一存在的這個現實,查詢注冊裝置資訊和查詢注冊裝置狀态類似,隻需要提供裝置注冊時的申請appid号就可以,不需要提供裝置所屬産品的

key值,這種簡化的輸入,也友善的相關開發的設計;

而在服務端傳回資訊方面,如果提供的appid值有效而且實際存在的話,會傳回給用戶端當時對應這個appid值,建立那組裝置的裝置本身的id值,名字和secret;

接下來我們看一下具體實作;

1、腳本實作:

我們按照接口的要求,在架構頁面上,提供appid這個輸入參數框給使用者輸入;

ApplyId:        <input type="text"

name="ApplyId2">

而在實際的實作代碼中,我們隻需要使用get函數提取這個變量就可以了:

$ApplyId = $_GET["ApplyId2"];

接着引用查詢裝置清單的接口:

$request = new

Iot\QueryPageByApplyIdRequest();

通過檢視QueryPageByApplyIdRequest.php檔案,可以知道由于傳回的資訊多個裝置的相關資訊,通常一頁顯示不下,是以這裡提供了分頁申請和頁面條數配置的輸入

接口,我們這裡按照預設的每頁指定顯示10條記錄,要求服務端傳回第一頁的資訊内容;

$request->setPageSize(10);

$request->setCurrentPage(1);

$request->setApplyId($ApplyId);

調用通用的網絡查詢操作後,最後對傳回資訊進行分析;首先顯示常用的requestid和success這兩個通用的資訊:

echo 'RequestId :'.$response->RequestId.'<br>';

echo 'Success :'.$response->Success.'<hr>';

然後通過一個循環來依次顯示每個裝置的相關資訊:

$cnt = min($response->PageSize,$response->Total);

echo '目前裝置個數'.$cnt.'[最多10個]<br><hr>';

for ($x=0; $x<$cnt; $x++) {

echo '裝置Id :'.$response->ApplyDeviceList->ApplyDeviceInfo[$x]->DeviceId.'<br>';

echo '裝置名稱 :'.$response->ApplyDeviceList->ApplyDeviceInfo[$x]->DeviceName.'<br>';

echo '裝置Secret :'.$response->ApplyDeviceList->ApplyDeviceInfo[$x]->DeviceSecret.'<hr>';

    }

2、實際測試:

打開浏覽器,轉到我們架構腳本頁面,這裡為了得到一個有效的appid,我們首先注冊5個裝置:iotdev1-iotdev5,得到appid值後,

在我們這次的appid輸入框中輸入這個值,點選送出後,可以看到服務端給我們傳回的這5個裝置的相關資訊;然後我們登陸到物聯網的網頁控制台,可以看到在我們

裝置注冊對應的産品下面,有五個裝置的對應資訊和這次的傳回資訊是一緻的;

具體向關截圖如下:

timelapse:

http://www.xunyun17.xyz/ioto/step7-QueryPageByApplyIdRequest.mp4

繼續閱讀