全部产品
Search
文档中心

阿里云物联网平台:使用OpenAPI示例

更新时间:Jan 05, 2024

本文为您介绍使用OpenAPI通过自定义Topic向设备发布消息的完整示例。

查看OpenAPI文档

通过阅读API列表得知,通过自定义Topic向设备发布消息的OpenAPI为Pub。请您根据文档,了解调用该接口需要准备的数据和权限。

创建RAM用户并授权

身份

您可以使用阿里云账号(主账号)、RAM用户、RAM角色调用该接口,有关各种身份的差异,请参见身份、凭据、授权。本案例中,我们使用RAM用户进行接口调用。

登录RAM访问控制,创建一个仅允许API调用的RAM用户,并记录AccessKey信息。具体操作,请参见创建RAM用户

授权

  1. 访问RAM用户列表,单击目标RAM用户操作列的添加权限

  2. 选择权限区块中输入关键字IoT进行搜索,选择AliyunIOTFullAccess策略。

    说明
    • 物联网平台的系统权限策略如下:

      • AliyunIOTFullAccess:管理物联网平台(IoT)的权限。

      • AliyunIOTReadOnlyAccess:只读访问物联网平台(IoT)的权限。

    • 关于如何创建自定义权限,请参见自定义权限

  3. 单击确定,完成授权操作。

凭证

在创建RAM用户时会默认生成一个AccessKey,可直接使用。

您也可以进入到对应的RAM用户详情页面,在认证管理页签,单击创建AccessKey,创建一个新的AccessKey。具体操作,请参见创建AccessKey

调用OpenAPI

本文以Python语言为例,为您介绍OpenAPI的调用方法。

准备Python环境

  1. 先查看当前系统是否安装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.
    >>>  
  2. 下载并安装Python。

    Python 3的下载地址,请参见Python 3

    Linux

    1. 获取Python包。

      wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz
    2. 解压缩Python包。

      tar -zxvf Python-3.9.6.tgz
    3. 切换到解压后的目录,指定安装路径。

      cd Python-3.9.6
      sudo ./configure --prefix=/usr/bin/python3
    4. 编译并安装Python。

      make
      make install
    5. 配置Python3环境变量。

      例如Ubuntu的Linux系统,可执行以下命令。

      1. 打开.bashrc文件,在文件底部

        nano ~/.bashrc
      2. 在文件底部添加以下内容,保存并关闭。

        export PATH=$PATH:/usr/bin/python3
      3. 执行以下命令,更新环境变量。

        source ~/.bashrc
      4. 执行以下命令,可查看环境变量包含Python3安装路径。

        echo $PATH

    macOS

    该系统自带有Python2.7环境,推荐下载最新版安装Python 3.x版本。

    1. 下载安装包后,双击安装包,进入Python安装向导对话框。

    2. 单击继续,按照指示进行配置和安装。

    3. 根据Python3安装路径,配置对应环境变量。

    Windows

    1. 下载后,双击下载包,进入Python安装向导,使用默认设置并选中Add Python 3.9 to PATH

    2. 单击Install Now,开始安装。

    3. 安装完成后,单击Close,关闭安装窗口。

  3. 参照步骤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_IDALIBABA_CLOUD_ACCESS_KEY_SECRET,并写入已准备好的AccessKey ID和AccessKey Secret,然后重启Windows系统。

安装依赖

pip3 install alibabacloud_tea_openapi
pip3 install alibabacloud_iot20180120
pip3 install alibabacloud-tea-console

下载示例代码

  1. 在OpenAPI门户,访问Pub接口的调试地址

  2. 请求参数IotInstanceIdProductKeyTopicFullNameMessageContent输入对应值,其他参数可不填写。

  3. 单击发起调用

  4. 调用结果页签显示调用成功后,先单击SDK示例页签,再单击Python页签。

  5. 单击下载完整工程,下载示例代码包。

  6. 在本地解压示例代码包,并进入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
    }
}