本文為您介紹使用OpenAPI通過自定義Topic向設備發(fā)布消息的完整示例。
查看OpenAPI文檔
通過閱讀API列表得知,通過自定義Topic向設備發(fā)布消息的OpenAPI為Pub。請您根據(jù)文檔,了解調用該接口需要準備的數(shù)據(jù)和權限。
創(chuàng)建RAM用戶并授權
身份
您可以使用阿里云賬號(主賬號)、RAM用戶、RAM角色調用該接口,有關各種身份的差異,請參見身份、憑據(jù)、授權。本案例中,我們使用RAM用戶進行接口調用。
登錄RAM訪問控制,創(chuàng)建一個僅允許API調用的RAM用戶,并記錄AccessKey信息。具體操作,請參見創(chuàng)建RAM用戶。
授權
訪問RAM用戶列表,單擊目標RAM用戶操作列的添加權限。
在選擇權限區(qū)塊中輸入關鍵字
IoT
進行搜索,選擇AliyunIOTFullAccess策略。說明物聯(lián)網平臺的系統(tǒng)權限策略如下:
AliyunIOTFullAccess:管理物聯(lián)網平臺(IoT)的權限。
AliyunIOTReadOnlyAccess:只讀訪問物聯(lián)網平臺(IoT)的權限。
關于如何創(chuàng)建自定義權限,請參見自定義權限。
單擊確定,完成授權操作。
憑證
在創(chuàng)建RAM用戶時會默認生成一個AccessKey,可直接使用。
您也可以進入到對應的RAM用戶詳情頁面,在認證管理頁簽,單擊創(chuàng)建AccessKey,創(chuàng)建一個新的AccessKey。具體操作,請參見創(chuàng)建AccessKey。
調用OpenAPI
本文以Python語言為例,為您介紹OpenAPI的調用方法。
準備Python環(huán)境
先查看當前系統(tǒng)是否安裝Python3版本。
Linux和macOS系統(tǒng)
打開系統(tǒng)終端,輸入
python3 --version
。系統(tǒng)回顯Python版本號,表示已安裝Python3。否則,執(zhí)行下一步,安裝Python3。
Windows系統(tǒng)
在Python的安裝路徑下,雙擊python.exe,打開命令提示符頁面。您也可通過鍵盤快捷鍵Win+R打開運行對話框,輸入命令python,單擊確定。
系統(tǒng)回顯類似如下,進入Python交互式環(huán)境,表示Python安裝成功。
Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>>
下載并安裝Python。
Python 3的下載地址,請參見Python 3。
Linux
獲取Python包。
wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz
解壓縮Python包。
tar -zxvf Python-3.9.6.tgz
切換到解壓后的目錄,指定安裝路徑。
cd Python-3.9.6 sudo ./configure --prefix=/usr/bin/python3
編譯并安裝Python。
make make install
配置Python3環(huán)境變量。
例如Ubuntu的Linux系統(tǒng),可執(zhí)行以下命令。
打開
.bashrc
文件,在文件底部nano ~/.bashrc
在文件底部添加以下內容,保存并關閉。
export PATH=$PATH:/usr/bin/python3
執(zhí)行以下命令,更新環(huán)境變量。
source ~/.bashrc
執(zhí)行以下命令,可查看環(huán)境變量包含Python3安裝路徑。
echo $PATH
macOS
該系統(tǒng)自帶有Python2.7環(huán)境,推薦下載最新版安裝Python 3.x版本。
下載安裝包后,雙擊安裝包,進入Python安裝向導對話框。
單擊繼續(xù),按照指示進行配置和安裝。
根據(jù)Python3安裝路徑,配置對應環(huán)境變量。
Windows
下載后,雙擊下載包,進入Python安裝向導,使用默認設置并選中Add Python 3.9 to PATH。
單擊Install Now,開始安裝。
安裝完成后,單擊Close,關閉安裝窗口。
參照步驟1查看Python3版本,顯示對應版本,表示安裝成功。
配置環(huán)境變量
為避免將AccessKey硬編碼到業(yè)務代碼中帶來的安全風險,本示例采用配置環(huán)境變量的方法管理AccessKey。
Linux和macOS系統(tǒng)
將以下命令中的
<access_key_id>
和<access_key_secret>
替換為您自己的AccessKey ID和AccessKey Secret,輸入到終端執(zhí)行。export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>
Windows系統(tǒng)
新建環(huán)境變量文件,添加環(huán)境變量
ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
,并寫入已準備好的AccessKey ID和AccessKey Secret,然后重啟Windows系統(tǒng)。
安裝依賴
pip3 install alibabacloud_tea_openapi
pip3 install alibabacloud_iot20180120
pip3 install alibabacloud-tea-console
下載示例代碼
請求參數(shù)IotInstanceId、ProductKey、TopicFullName、MessageContent輸入對應值,其他參數(shù)可不填寫。
單擊發(fā)起調用。
調用結果頁簽顯示調用成功后,先單擊SDK示例頁簽,再單擊Python頁簽。
單擊下載完整工程,下載示例代碼包。
在本地解壓示例代碼包,并進入alibabacloud_sample目錄。
運行代碼
執(zhí)行以下命令:
python sample.py
輸出結果如下:
{
"headers": {
"date": "Thu, 10 Aug 2023 09:26:52 GMT",
"content-type": "application/json;charset=utf-8",
"content-length": "99",
"connection": "keep-alive",
"keep-alive": "timeout=25",
"access-control-allow-origin": "*",
"access-control-expose-headers": "*",
"x-acs-request-id": "1296FD43-4BD3-5F80-AB2C-1ADF99B02253",
"x-acs-trace-id": "aee72e4c5e***************77fc9d",
"etag": "9umD************cjYJ8og9"
},
"statusCode": 200,
"body": {
"MessageId": 1689000000000004736,
"RequestId": "1296FD43-4BD3-5F80-AB2C-1ADF99B02253",
"Success": true
}
}