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

IoT Platform:.NET 用 IoT Platform SDK の使用

最終更新日:Mar 22, 2025

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

SDK のインストール

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

    .NET 用 IoT Platform SDK は、以下の開発環境をサポートしています。

    • .NET Framework 4.5 以降

    • .NET Standard 2.0 以降

    • C# 4.0 以降

    • Visual Studio 2010 以降

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

    • .NET CLI を使用して SDK をインストールします。

      次のコマンドを実行して、SDK の最新バージョンをインストールできます。 特定のバージョンの SDK をインストールする場合は、コマンドに --versionバージョン番号 を追加します。

      dotnet add package AlibabaCloud.OpenApiClient 
    • .csproj ファイルを構成して依存関係を追加します。次に、コマンドを実行して SDK をインストールします。

      1. 次の依存関係を追加します。

        <PackageReference Include="AlibabaCloud.OpenApiClient" Version="0.0.13" />
      2. 次のコマンドを実行して、SDK をインストールします。

        dotnet build
  3. NuGet を使用して SDK をインストールします。詳細については、「NuGet パッケージ」をご参照ください。

    • Visual Studio を使用して SDK をインストールします。

      1. Visual Studio の ソリューション エクスプローラーNuGet パッケージの管理 パネルで、プロジェクトを右クリックし、 を選択します。

      2. NuGet パッケージ マネージャー参照 パネルで、 タブをクリックします。

      3. [参照] タブで、検索ボックスに AlibabaCloud.SDK と入力し、結果リストから [作成者] 列に aliyun-openapi-sdk と表示されている AlibabaCloud.SDK.Iot20180120 エントリを選択します。 SDK の詳細については、「AlibabaCloud.SDK.Iot20180120」をご参照ください。

      4. インストール をクリックします。

    • その他のインストール方法

      • dotnet CLI を使用して SDK をインストールします。その他のバージョンの詳細については、「IoT Platform SDK サンプルセンター」をご参照ください。

        # SDK の最新バージョンをインストールします。
        dotnet add package AlibabaCloud.SDK.Iot20180120
        
        # インストールする SDK のバージョンを指定します。この例では、バージョン 3.0.9 の SDK がインストールされます。
        dotnet add package AlibabaCloud.SDK.Iot20180120 --version 3.0.9
      • インストールパッケージを使用して SDK をインストールします。

        # SDK の最新バージョンをインストールします。
        Install-Package AlibabaCloud.SDK.Iot20180120
        
        # インストールする SDK のバージョンを指定します。この例では、バージョン 3.0.9 の SDK がインストールされます。
        Install-Package AlibabaCloud.SDK.Iot20180120 -Version 3.0.9

    .NET 用 SDK のソースコードについては、「alibabacloud-csharp-sdk」をご参照ください。

SDK の初期化

  1. AlibabaCloud.OpenApiClient.Models.Config クラスの config オブジェクトを作成し、AccessKey IDAccessKey secret、リージョン ID などの SDK 初期化情報を格納します。

  2. AlibabaCloud.SDK.Iot20180120 クラスのクライアントインスタンスを作成します。AlibabaCloud.SDK.Iot20180120.Client(config) メソッドを呼び出して、SDK 初期化情報をロードします。情報がロードされると、SDK が初期化されます。

    リクエスト パラメーターと レスポンス パラメーターは、後続の API 呼び出しのために AlibabaCloud.SDK.Iot20180120.Models から取得されます。

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

AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
// AccessKey ID。
config.AccessKeyId = Environment.GetEnvironmentVariable("ACCESS_KEY_ID");
// AccessKey シークレット。
config.AccessKeySecret = Environment.GetEnvironmentVariable("ACCESS_KEY_SECRET");
// リージョン ID。
config.RegionId = "cn-shanghai";
AlibabaCloud.SDK.Iot20180120.Client client = new AlibabaCloud.SDK.Iot20180120.Client(config);

パラメーター

説明

AccessKeyId

Alibaba Cloud アカウントの アクセスキー ID です。

Alibaba Cloud 管理コンソールの AccessKey ペア ページにアクセスして、AccessKey ペアを作成または表示できます。

AccessKeySecret

Alibaba Cloud アカウントの アクセスキーシークレット

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. request インスタンスの request.${リクエスト パラメーター} メソッドを呼び出して、リクエスト パラメーターを指定します。

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

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

    たとえば、response.body.RequestId メソッドを呼び出して、API リクエストに対して Alibaba Cloud によって生成された一意の識別子を取得できます。 RequestId は一般的なレスポンスパラメータです。一般的なレスポンスパラメータには、SuccessErrorMessage、および Code も含まれます。

  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 インスタンスに関するよくある質問」をご参照ください。

AlibabaCloud.SDK.Iot20180120.Models.PubRequest request = new AlibabaCloud.SDK.Iot20180120.Models.PubRequest
{
    // IoT Platform インスタンスの ID。
    IotInstanceId = "${iotInstanceId}",
    // プロダクトの ProductKey。
    ProductKey = "${productKey}",
    // 送信するメッセージの内容。"hello world" を Base64 で文字列としてエンコードします。
    MessageContent = Convert.ToBase64String(Encoding.Default.GetBytes("Hello World.")),
    // メッセージをパブリッシュするために使用されるカスタム Topic。
    TopicFullName = "/${productKey}/${deviceName}/user/get",
    // メッセージ送信モード。IoT Platform SDK は QoS 0 と QoS 1 をサポートしています。
    Qos = 0,
};
// client インスタンスを使用してレスポンスを取得します。
try
{
    AlibabaCloud.SDK.Iot20180120.Models.PubResponse response = client.Pub(request);
    Console.WriteLine("publish message result: " + response.Body.Success);
    Console.WriteLine(response.Body.Code);
    Console.WriteLine(response.Body.ErrorMessage);
}
catch (TeaException error)
{
    Console.WriteLine(error.Code);
    Console.WriteLine(error.Message);
}
catch (Exception _error)
{
    Console.WriteLine(_error.Message);
    Console.WriteLine(_error.StackTrace);
}

サンプルコード

説明

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

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Threading.Tasks;

using Tea;
using Tea.Utils;

namespace AlibabaCloud.SDK.Sample
{
    public class Sample
    {
        /**
         * AccessKey ID と AccessKey シークレットを使用してクライアントを初期化します。
         * @param accessKeyId 
         * @param accessKeySecret
         * @param regionId
         * @return Client
         * @throws Exception
         */
        public static AlibabaCloud.SDK.Iot20180120.Client CreateClient()
        {
            AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
            // AccessKey ID。
            config.AccessKeyId = Environment.GetEnvironmentVariable("ACCESS_KEY_ID");
            // AccessKey シークレット。
            config.AccessKeySecret = Environment.GetEnvironmentVariable("ACCESS_KEY_SECRET");
            // リージョン ID。
            config.RegionId = "cn-shanghai";
            return new AlibabaCloud.SDK.Iot20180120.Client(config);
        }


        public static void Main(string[] args)
        {
            try
            {
                AlibabaCloud.SDK.Iot20180120.Client client = CreateClient("${accessKey}", "${accessKeySecret}");
                AlibabaCloud.SDK.Iot20180120.Models.PubRequest request = new AlibabaCloud.SDK.Iot20180120.Models.PubRequest
                {
                    // IoT Platform インスタンスの ID。
                    IotInstanceId = "${iotInstanceId}",
                    // プロダクトの ProductKey。
                    ProductKey = "${productKey}",
                    // 送信するメッセージの内容。"hello world" を Base64 で文字列としてエンコードします。
                    MessageContent = Convert.ToBase64String(Encoding.Default.GetBytes("Hello World.")),
                    // メッセージをパブリッシュするために使用されるカスタム Topic。
                    TopicFullName = "/${productKey}/${deviceName}/user/get",
                    // メッセージ送信モード。IoT Platform SDK は QoS 0 と QoS 1 をサポートしています。
                    Qos = 0,
                };
                AlibabaCloud.SDK.Iot20180120.Models.PubResponse response = client.Pub(request);
                Console.WriteLine("publish message result: " + response.Body.Success);
                Console.WriteLine(response.Body.Code);
                Console.WriteLine(response.Body.ErrorMessage);
            }
            catch (TeaException error)
            {
                Console.WriteLine(error.Code);
                Console.WriteLine(error.Message);
            }
            catch (Exception _error)
            {
                Console.WriteLine(_error.Message);
                Console.WriteLine(_error.StackTrace);
            }
        }
    }
}

付録: サンプルコード

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

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