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

IoT Platform:Java SDK の使用

最終更新日:Jun 17, 2026

IoT Platform Java SDK を使用すると、Java プログラムから IoT Platform のリソースを管理できます。SDK は、Maven 依存関係として追加するか、ローカルパッケージからインストールできます。

SDK のインストール

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

    Java の公式サイトから Java 開発環境をダウンロードしてインストールします。Java 8 以降のバージョンをインストールしてください。

  2. IoT Java SDK をインストールします。

    1. Apache Maven の公式サイトにアクセスして、Maven ソフトウェアをダウンロードします。

    2. Maven プロジェクトの依存関係を追加します。

      重要

      次の version は一例です。最新バージョンについては、「OpenAPI Portal での IoT Platform 用 SDK のインストール方法」をご参照ください。

      • IoT Java SDK の Maven 依存関係の座標:

        <!-- https://mvnrepository.com/artifact/com.aliyun/iot20180120 -->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>iot20180120</artifactId>
            <version>4.2.0</version>
        </dependency>
      • Alibaba Cloud Java SDK 共通パッケージの Maven 依存関係の座標:

        <dependency>
          <groupId>com.aliyun</groupId>
          <artifactId>tea-openapi</artifactId>
          <version>0.2.2</version>
        </dependency>

Java SDK のソースコードの詳細については、「alibabacloud-java-sdk」をご参照ください。

SDK の初期化

  1. SDK の初期化パラメーター (AccessKey IDAccessKey シークレット、リージョン ID など) を格納するために、 config という名前の Config オブジェクトを作成します。

  2. client という名前の Client オブジェクトインスタンスを作成します。 com.aliyun.iot20180120.Client(config) メソッドを呼び出して、 config から SDK 情報を読み込み、クライアントを初期化します。

    後続の API 呼び出しの Request および Response パラメーターは com.aliyun.iot20180120.models にあります。

次の例では、中国 (上海) リージョンの SDK を初期化します。エンドポイントを、お使いの IoT Platform サービスがデプロイされているリージョンのエンドポイントに置き換えてください。

Config config = new Config()
    // ご自身の AccessKey ID。
    .setAccessKeyId(accessKeyId)
    // ご自身の AccessKey シークレット。
    .setAccessKeySecret(accessKeySecret);
// アクセスするエンドポイント。
config.endpoint = "iot.cn-shanghai.aliyuncs.com";

Client client = new Client(config);

パラメーター

説明

accessKeyId

ご使用の Alibaba Cloud アカウントの AccessKey ID です。

Alibaba Cloud コンソールの AccessKey 管理ページで AccessKey ペアを作成または表示できます。

accessKeySecret

ご使用の Alibaba Cloud アカウントの AccessKey シークレット です。

regionId

IoT Platform サービスのリージョン ID で、 iot.${RegionId}.aliyuncs.com. という形式でエンドポイントを構築するために使用します。

IoT Platform コンソールの左上で現在のサービスリージョンを確認できます。

リージョン ID の指定方法の詳細については、「リージョンとゾーン」をご参照ください。

重要

コードに AccessKey 認証情報をハードコーディングすることに伴うセキュリティリスクを回避するため、環境変数を使用して AccessKey ペアを管理することを推奨します。

ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数をオペレーティングシステムに追加し、ご自身の AccessKey ID と AccessKey シークレットに設定してください。

コードで認証情報を取得するには、次のようにします。

  • System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")

  • System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")

SDK クライアントの HTTP リクエスト、プロキシ、タイムアウト、再試行の設定方法については、「Alibaba Cloud SDK for Java ドキュメント」をご参照ください。

呼び出しの実行

IoT Platform クラウド SDK は、API ごとに 2 つのクラス、 ${API name}+"Request"${API name}+"Response" を提供します。これらのクラスは、API リクエストとレスポンスを表します。

呼び出し手順

  1. SDK クライアントを初期化します。詳細については、「SDK の初期化」をご参照ください。

  2. API 呼び出し用に、 request という名前の ${API name}+"Request" オブジェクトインスタンスを作成します。

  3. request オブジェクトの set+${Request parameter name} メソッドを呼び出して、必須のリクエストパラメーターを設定します。

  4. response という名前の ${API name}+"Response" オブジェクトインスタンスを作成します。 client オブジェクトの ${API name}(request) メソッドを呼び出して、レスポンスを取得します。レスポンスには、サーバーからの bodyheaders が含まれます。

  5. response オブジェクトの body メンバーの get+${Response parameter name} メソッドを呼び出して、レスポンスパラメーターの値を取得します。

    たとえば、 response.getBody().getSuccess() は成功フラグを取得します。 Success は、共通のレスポンスパラメーターです。その他の共通レスポンスパラメーターには、 RequestIdErrorMessageCode などがあります。

  6. catch() メソッドを使用して例外を処理します。

IoT Platform クラウド API の完全なリストについては、「API リスト」をご参照ください。リクエストおよびレスポンスパラメーターの説明については、各 API のドキュメントをご参照ください。

次の例では、Pub API を使用してトピックにメッセージを公開します。リクエストパラメーターの詳細については、「Pub」をご参照ください。

重要

次のコードにある iotInstanceId はインスタンス ID です。インスタンスの詳細については、「インスタンスの概要」をご参照ください。

インスタンスの購入方法については、「エンタープライズインスタンスの購入」をご参照ください。

PubRequest request = new PubRequest()
    .setIotInstanceId("${iotInstanceId}")
    .setProductKey("${productKey}")
    .setMessageContent(Base64.getEncoder().encodeToString("hello world".getBytes()))
    .setTopicFullName("/${productKey}/${deviceName}/user/get")
    .setQos(0);// QoS 0 と QoS 1 をサポートしています。 
try {
    PubResponse response = client.pub(request);
    // レスポンスには、サーバー側の body と headers が含まれます。 
    // この呼び出しのリクエスト ID を取得します。
    System.out.println(response.getBody().getRequestId());
    // 呼び出しが成功したかどうかを確認します。
    System.out.println(response.getBody().getSuccess());
    
    // 呼び出しは成功しました。
    if (response.getBody().getSuccess()) {
        // クラウドからメッセージ ID を取得します。
        System.out.println(response.getBody().getMessageId());
        
        // ビジネスロジックを実装します。
        
    } else {
    // 呼び出しは失敗しました。            
        // 失敗した呼び出しのエラーコードを取得します。
        System.out.println(response.getBody().getCode());
        // 失敗した呼び出しのエラーメッセージを取得します。
        System.out.println(response.getBody().getErrorMessage());
     }
} catch (TeaException error) {
    // サーバーでビジネス例外が発生しました。
    System.out.println(error.getCode());
    System.out.println(error.getMessage());
} catch (Exception e) {
    // その他のランタイム例外が発生しました。
    e.printStackTrace();
}

完全なサンプルコード

説明

これまでの説明に基づいて、パラメーター値をご自身の値に置き換えてください。

import com.aliyun.iot20180120.Client;
import com.aliyun.iot20180120.models.PubRequest;
import com.aliyun.iot20180120.models.PubResponse;
import com.aliyun.tea.TeaException;
import com.aliyun.teaopenapi.models.Config;
import java.util.Base64;

public class IotSdkDemo {
    /**
     * AccessKey ID と AccessKey シークレットを使用してクライアントを初期化します。
     */
    private static Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // 必須。ご自身の AccessKey ID。
                .setAccessKeyId(accessKeyId)
                // 必須。ご自身の AccessKey シークレット。
                .setAccessKeySecret(accessKeySecret);
        // エンドポイントについては、https://api.aliyun.com/product/Iot を参照してください
        config.endpoint = "iot.cn-beijing.aliyuncs.com";
        return new Client(config);
    }

    public static void main(String[] args) {
        try {
            Client client = createClient(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
            PubRequest request = new PubRequest()
                .setIotInstanceId("${iotInstanceId}")
                .setProductKey("${productKey}")
                .setMessageContent(Base64.getEncoder().encodeToString("hello world".getBytes()))
                .setTopicFullName("/${productKey}/${deviceName}/user/get")
                .setQos(0);// QoS 0 と QoS 1 をサポートしています。 
            
            PubResponse response = client.pub(request);            
            // この呼び出しのリクエスト ID を取得します。
      System.out.println(response.getBody().getRequestId());
      // 呼び出しが成功したかどうかを確認します。
      System.out.println(response.getBody().getSuccess());
            
         // 呼び出しは成功しました。
       if (response.getBody().getSuccess()) {
          // クラウドからメッセージ ID を取得します。
          System.out.println(response.getBody().getMessageId());
        
          // ビジネスロジックを実装します。
      } else {
       // 呼び出しは失敗しました。            
          // 失敗した呼び出しのエラーコードを取得します。
             System.out.println(response.getBody().getCode());
          // 失敗した呼び出しのエラーメッセージを取得します。
          System.out.println(response.getBody().getErrorMessage());
      }
        } catch (TeaException error) {
            // サーバーでビジネス例外が発生しました。
      System.out.println(error.getCode());
      System.out.println(error.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

付録:サンプルコード

IoT Platform クラウド SDK サンプルセンターにアクセスして、API 呼び出しのサンプルコードを表示またはダウンロードします。サンプルは、Java、Python、PHP、Node.js、Go、C++、.NET の SDK に対応しています。

Alibaba Cloud OpenAPI Developer Portal は、オンライン API デバッグツールを提供しています。 [API Debugging] ページで、API 呼び出しを検索してテストできます。ポータルは、入力したパラメーターに基づいて、さまざまな言語の SDK サンプルコードを自動的に生成します。生成されたコードは [SDK Sample] タブ、レスポンスは [Result] タブで確認できます。