更新时间:2024-10-22 GMT+08:00

PHP SDK使用指南

物联网平台提供PHP语言的应用侧SDK供开发者使用。本文介绍PHP SDK的安装和配置,及使用PHP SDK调用应用侧API的示例。

SDK获取和安装

  1. 安装PHP开发环境。

    访问PHP官网,下载并按说明安装PHP开发环境。

    华为云 Php SDK 支持 PHP 5.6、PHP6、PHP7版本,不支持PHP8 版本,在运行前可执行 php --version 检查当前 Php 的版本信息,如果安装了PHP其他语言的版本,运行PHP SDK可能会报错。

  2. 安装composer

    curl -sS https://getcomposer.org/installer | php

  3. 安装PHP SDK

    composer require huaweicloud/huaweicloud-sdk-php

  4. 引入 Composer 的自动加载文件

    require 'path/to/vendor/autoload.php';

代码示例

以调用查询设备列表接口为例,以下代码示例向您展示使用PHP SDK的主要步骤:

  1. 创建认证。
  2. 创建IoTDAClient实例并初始化。
  3. 实例化请求对象。
  4. 调用查询设备列表接口。

    <?php
    namespace HuaweiCloud\SDK\IoTDA\V5\Model;
    require_once "vendor/autoload.php";
    use HuaweiCloud\SDK\Core\Auth\BasicCredentials;
    use HuaweiCloud\SDK\Core\Http\HttpConfig;
    use HuaweiCloud\SDK\Core\Auth\Credentials;
    use HuaweiCloud\SDK\Core\Exceptions\ConnectionException;
    use HuaweiCloud\SDK\Core\Exceptions\RequestTimeoutException;
    use HuaweiCloud\SDK\Core\Exceptions\ServiceResponseException;
    use HuaweiCloud\SDK\Core\Region\Region;
    use HuaweiCloud\SDK\IoTDA\V5\IoTDAClient;
    // 认证用的ak和sk直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;
    // 本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。
    $ak = getenv('HUAWEICLOUD_SDK_AK');
    $sk = getenv('HUAWEICLOUD_SDK_SK');
    // endpoint:请在控制台的"总览"界面的"平台接入地址"中查看“应用侧”的https接入地址。
    // $endpoint = "https://iotda.cn-north-4.myhuaweicloud.com";
    $endpoint = "<YOUR ENDPOINT>";
    $projectId = "<YOUR PROJECT_ID>";
    // REGION_ID:如果是上海一,请填写"cn-east-3";如果是北京四,请填写"cn-north-4";如果是华南广州,请填写"cn-south-1"
    $regionId = "<YOUR REGION ID>";
    // 创建认证
    $credential = new BasicCredentials($ak,$sk,$projectId);
    // 标准版/企业版需要使用衍生算法,基础版请删除配置"withDerivedPredicate"
    $credential->withDerivedPredicate(Credentials::getDefaultDerivedPredicate());
    // 修改默认配置,跳过服务端证书验证
    $config = HttpConfig::getDefaultConfig();
    $config->setIgnoreSslVerification(true);
    // 创建IoTDAClient实例并初始化(若默认配置无修改config可不添加)
    $client = IoTDAClient::newBuilder(new IoTDAClient)
      ->withHttpConfig($config)
      ->withEndpoint($endpoint)
      ->withCredentials($credential)
      ->withRegion(new Region($regionId, $endpoint))
      ->build();
    // 实例化请求对象
    $request = new ListDevicesRequest();
    try {
      // 调用查询设备列表接口
      $response = $client->ListDevices($request);
    } catch (ConnectionException $e) {
      $msg = $e->getMessage();
      echo "\n". $msg ."\n";
    } catch (RequestTimeoutException $e) {
      $msg = $e->getMessage();
      echo "\n". $msg ."\n";
    } catch (ServiceResponseException $e) {
      echo "\n";
      echo $e->getHttpStatusCode(). "\n";
      echo $e->getErrorCode() . "\n";
      echo $e->getErrorMsg() . "\n";
    }
    echo "\n";
    echo $response;

    参数

    说明

    ak

    您的华为云账号访问密钥ID(Access Key ID)。请在华为云控制台我的凭证 > 访问密钥页面上创建和查看您的 AK/SK。更多信息请查看访问密钥

    sk

    您的华为云账号秘密访问密钥(Secret Access Key)。

    endpoint

    请替换为您要访问的华为云服务所在区域的终端节点。

    您可以在控制台上查看当前服务所在区域名称,区域名称、区域和终端节点的对应关系,具体步骤地区和终端节点

    projectId

    您要访问的华为云服务所在项目 ID ,根据您想操作的项目所属区域选择对应的项目 ID

更多

项目源码及更多详细的使用指导请参考华为云开发者 PHP 软件开发工具包(PHP SDK)