本文為您介紹使用OpenAPI通過自訂Topic向裝置發布訊息的完整樣本。
查看OpenAPI文檔
通過閱讀API列表得知,通過自訂Topic向裝置發布訊息的OpenAPI為Pub。請您根據文檔,瞭解調用該介面需要準備的資料和許可權。
建立RAM使用者並授權
身份
您可以使用阿里雲帳號(主帳號)、RAM使用者、RAM角色調用該介面,有關各種身份的差異,請參見身份、憑據、授權。本案例中,我們使用RAM使用者進行介面調用。
登入RAM存取控制,建立一個僅允許API調用的RAM使用者,並記錄AccessKey資訊。具體操作,請參見建立RAM使用者。
授權
訪問RAM使用者列表,單擊目標RAM使用者操作列的添加許可權。
在選擇許可權區塊中輸入關鍵字
IoT
進行搜尋,選擇AliyunIOTFullAccess策略。說明物聯網平台的系統權限原則如下:
AliyunIOTFullAccess:管理物聯網平台(IoT)的許可權。
AliyunIOTReadOnlyAccess:唯讀訪問物聯網平台(IoT)的許可權。
關於如何建立自訂許可權,請參見自訂許可權。
單擊確定,完成授權操作。
憑證
在建立RAM使用者時會預設產生一個AccessKey,可直接使用。
您也可以進入到對應的RAM使用者詳情頁面,在認證管理頁簽,單擊建立AccessKey,建立一個新的AccessKey。具體操作,請參見建立AccessKey。
調用OpenAPI
本文以Python語言為例,為您介紹OpenAPI的調用方法。
準備Python環境
先查看當前系統是否安裝Python3版本。
Linux和macOS系統
開啟系統終端,輸入
python3 --version
。系統回顯Python版本號碼,表示已安裝Python3。否則,執行下一步,安裝Python3。
Windows系統
在Python的安裝路徑下,雙擊python.exe,開啟命令提示字元頁面。您也可通過鍵盤快速鍵Win+R開啟運行對話方塊,輸入命令python,單擊確定。
系統回顯類似如下,進入Python互動式環境,表示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環境變數。
例如Ubuntu的Linux系統,可執行以下命令。
開啟
.bashrc
檔案,在檔案底部nano ~/.bashrc
在檔案底部添加以下內容,儲存並關閉。
export PATH=$PATH:/usr/bin/python3
執行以下命令,更新環境變數。
source ~/.bashrc
執行以下命令,可查看環境變數包含Python3安裝路徑。
echo $PATH
macOS
該系統內建有Python2.7環境,推薦下載最新版安裝Python 3.x版本。
下載安裝包後,雙擊安裝包,進入Python安裝嚮導對話方塊。
單擊繼續,按照指示進行配置和安裝。
根據Python3安裝路徑,配置對應環境變數。
Windows
下載後,雙擊下載包,進入Python安裝嚮導,使用預設設定並選中Add Python 3.9 to PATH。
單擊Install Now,開始安裝。
安裝完成後,單擊Close,關閉安裝視窗。
參照步驟1查看Python3版本,顯示對應版本,表示安裝成功。
配置環境變數
為避免將AccessKey寫入程式碼到業務代碼中帶來的安全風險,本樣本採用配置環境變數的方法管理AccessKey。
Linux和macOS系統
將以下命令中的
<access_key_id>
和<access_key_secret>
替換為您自己的AccessKey ID和AccessKey Secret,輸入到終端執行。export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>
Windows系統
建立環境變數檔案,添加環境變數
ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
,並寫入已準備好的AccessKey ID和AccessKey Secret,然後重啟Windows系統。
安裝依賴
pip3 install alibabacloud_tea_openapi
pip3 install alibabacloud_iot20180120
pip3 install alibabacloud-tea-console
下載範例程式碼
請求參數IotInstanceId、ProductKey、TopicFullName、MessageContent輸入對應值,其他參數可不填寫。
單擊發起調用。
調用結果頁簽顯示調用成功後,先單擊SDK樣本頁簽,再單擊Python頁簽。
單擊下載完整工程,下載範例程式碼包。
在本地解壓範例程式碼包,並進入alibabacloud_sample目錄。
運行代碼
執行以下命令:
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
}
}