すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:Node.js 用 IoT Platform SDK の使用

最終更新日:Mar 22, 2025

IoT Platform は、Node.js 用の SDK を提供しています。このトピックでは、Node.js 用の IoT Platform SDK をインストールおよび設定する方法について説明します。また、SDK を使用して IoT Platform の API 操作を呼び出す方法のサンプルコードも提供します。

SDK のインストール

  1. Node.js 開発環境をインストールします。

    アップグレードされた Node.js 用 IoT Platform SDK は、Node.js 環境に基づいて開発されています。 Node.js 8.x 以降をインストールする必要があります。

  2. Node.js 用 Alibaba Cloud SDK をインストールします。

    npm を使用して依存関係を管理できます。次のコマンドを実行して、package.json ファイルに依存関係を追加します。

    npm install @alicloud/openapi-client -S
  3. Node.js 用 IoT Platform SDK をインストールします。

    次のコマンドを実行して、バージョン 3.0.8 の SDK をインストールします。

    npm install --save @alicloud/iot20180120@3.0.8

    Node.js 用 SDK のソースコードについては、alibabacloud-typescript-sdk をご覧ください。

SDK の初期化

  1. config オブジェクトを作成して、アクセスキー IDアクセスキー シークレット、リージョン ID などの SDK 初期化情報を格納します。

  2. クライアントIot(config)構成 インスタンスを作成し、 メソッドを呼び出して、 オブジェクトから SDK 初期化情報をロードします。

たとえば、中国 (上海) リージョンで SDK を使用する場合は、次のコードを使用して SDK を初期化できます。本番環境では、IoT Platform がアクティブ化されているリージョンを選択する必要があります。

import Iot, * as $Iot from '@alicloud/iot20180120';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
let config = new $OpenApi.Config({ });
// アクセスキー ID。
config.accessKeyId = process.env.ACCESS_KEY_ID;
// アクセスキーシークレット。
config.accessKeySecret = process.env.ACCESS_KEY_SECRET;
// リージョン ID。
config.regionId = "cn-shanghai";
let client = new Iot(config);

パラメーター

説明

regionId

IoT Platform インスタンスが存在するリージョンの ID。リージョン ID は、サービスアクセス用のエンドポイントで使用されます。エンドポイントは iot.${RegionId}.aliyuncs.com 形式です。

IoT Platform コンソール の左上隅でリージョンを確認できます。

リージョン ID の形式の詳細については、「サポートされているリージョン」をご参照ください。

リクエストの開始

SDK は、各 API 操作に対して 2 つのクラスをカプセル化します。名前が ${API名}+"Request" 形式のクラスはリクエストを示し、名前が ${API名}+"Response" 形式のクラスはレスポンスを示します。

手順

  1. SDK を初期化します。詳細については、このトピックの「SDK の初期化」セクションをご参照ください。

  2. リクエスト インスタンスを生成することで、${API 操作名}+"Request" クラスの API リクエストを作成します。

  3. リクエスト インスタンスを使用して、リクエストパラメータを指定します。

  4. 応答${API操作名}+"Response" クラスの ${API 操作名}(リクエスト)クライアント本文ヘッダー インスタンスを作成して、レスポンスを取得します。 インスタンスの メソッドを呼び出して、API リクエストに対するレスポンスを取得します。レスポンスには、サーバーから返された と が含まれます。

  5. メソッドを呼び出して、レスポンスパラメーターの値を取得します。

    たとえば、response.body.success メソッドを呼び出して、成功 パラメーターを取得できます。このパラメーターは、リクエストが成功したかどうかを示す一般的なレスポンスパラメーターです。一般的なレスポンスパラメーターには、リクエスト IDエラーメッセージコード も含まれます。

  6. catch() メソッドを呼び出して、例外を処理します。

IoT Platform の API 操作の詳細については、「関数別の操作リスト」をご参照ください。各 API 操作のリクエストパラメーターとレスポンスパラメーターの詳細については、API リファレンスをご参照ください。

次の例は、Pub 操作を呼び出して Topic にメッセージをパブリッシュする方法を示しています。リクエストパラメーターの詳細については、「Pub」をご参照ください。

重要

次のサンプルコードでは、${iotInstanceId} はインスタンスの ID を指定します。 IoT Platform コンソール の [概要] ページでインスタンスの [ID] を表示できます。

  • インスタンスに ID がある場合は、このパラメーターに ID を指定する必要があります。指定しないと、呼び出しは失敗します。

  • インスタンスに [概要] ページまたは ID が生成されない場合は、このパラメーターを構成する必要はありません。 IotInstanceId パラメーターに関連付けられているリクエストコードを削除するか、パラメーターに空の文字列("")を指定する必要があります。指定しない場合、呼び出しは失敗します。

IoT Platform インスタンスの詳細については、「概要」をご参照ください。インスタンスの購入方法の詳細については、「Enterprise Edition インスタンスの購入」をご参照ください。詳細については、「IoT Platform インスタンスに関するよくある質問」をご参照ください。

try {
    let client = Client.createClient("${accessKey}", "${accessKeySecret}");
    let request = new $Iot.PubRequest({
        // IoT Platform インスタンスの ID。
        iotInstanceId: "${iotInstanceId}",
        // プロダクトの ProductKey。
        productKey: "${productKey}",
        // 送信されるメッセージ本文。 Base64 でエンコードする必要があります。
        messageContent: "eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0=",
        // メッセージをパブリッシュするために使用されるカスタム Topic。
        topicFullName: "/${productKey}/${deviceName}/user/get",
        // メッセージ送信モード。 IoT Platform SDK は QoS 0 と QoS 1 をサポートしています。
        qos: 0,
    });
    let response = await client.pub(request);
    Console.log(Util.toJSONString($tea.toMap(response)));
} catch (error) {
    Console.log(error.message);
}

サンプルコード

説明

ビジネスシナリオに基づいて、上記のパラメーターの値を実際の値に置き換えることができます。

import Iot, * as $Iot from '@alicloud/iot20180120';
import Util from '@alicloud/tea-util';
import Env from '@alicloud/darabonba-env';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import Console from '@alicloud/tea-console';
import * as $tea from '@alicloud/tea-typescript';


export default class Client {
  /**
   * アクセスキー ID とアクセスキーシークレットを使用して、クライアントを初期化します。
   * @param accessKeyId
   * @param accessKeySecret
   * @param regionId
   * @return Client
   * @throws Exception
   */
  static createClient(): Iot {
    let config = new $OpenApi.Config({ });
    // アクセスキー ID。
    config.accessKeyId = process.env.ACCESS_KEY_ID;
    // アクセスキーシークレット。
    config.accessKeySecret = process.env.ACCESS_KEY_SECRET;
    // リージョン ID。
    config.regionId = "cn-shanghai";
    return new Iot(config);
   }


  static async main(args: string[]): Promise<void> {
    try {
      let client = Client.createClient("${accessKey}", "${accessKeySecret}");
      let request = new $Iot.PubRequest({
        // IoT Platform インスタンスの ID。
        iotInstanceId: "${iotInstanceId}",
        // プロダクトの ProductKey。
        productKey: "${productKey}",
        // 送信するメッセージ本文。 "hello world" を Base64 で文字列としてエンコードします。
        messageContent: "eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0=",
        // メッセージをパブリッシュするために使用されるカスタム Topic。
        topicFullName: "/${productKey}/${deviceName}/user/get",
        // メッセージ送信モード。 IoT Platform SDK は QoS 0 と QoS 1 をサポートしています。
        qos: 0,
      });
      let response = await client.pub(request);
      Console.log(response.body.success);
      Console.log(response.body.requestId);
    } catch (error) {
      Console.log(error.message);
    }    
  }
}

Client.main(process.argv.slice(2));

付録: サンプルコード

IoT Platform SDK サンプルセンター で、API 操作のサンプルコードを表示またはダウンロードできます。 Java、Python、PHP、Node.js、Go、C++、.NET 用の SDK のサンプルコードが提供されています。

Alibaba Cloud OpenAPI Explorer は、API 操作のオンラインデバッグツール を提供します。 API デバッグサンプルコードデバッグ結果 ページで、API 操作を検索し、API 操作を呼び出し、さまざまな SDK の API 操作のサンプルコードを生成できます。ページの右側にある タブで、SDK のサンプルコードを表示できます。 タブで、JSON 形式の実際のリクエスト URL とレスポンスを表示できます。