IoT Platform は .NET 用の SDK を提供しています。このトピックでは、.NET 用の IoT Platform SDK をインストールおよび構成する方法について説明します。また、SDK を使用して IoT Platform の API 操作を呼び出す方法のサンプルコードも提供します。
SDK のインストール
.NET 開発環境をインストールします。
.NET 用 IoT Platform SDK は、以下の開発環境をサポートしています。
.NET Framework 4.5 以降
.NET Standard 2.0 以降
C# 4.0 以降
Visual Studio 2010 以降
.NET 用 Alibaba Cloud SDK をインストールします。
.NET CLI を使用して SDK をインストールします。
次のコマンドを実行して、SDK の最新バージョンをインストールできます。 特定のバージョンの SDK をインストールする場合は、コマンドに
--versionバージョン番号を追加します。dotnet add package AlibabaCloud.OpenApiClient.csproj ファイルを構成して依存関係を追加します。次に、コマンドを実行して SDK をインストールします。
次の依存関係を追加します。
<PackageReference Include="AlibabaCloud.OpenApiClient" Version="0.0.13" />次のコマンドを実行して、SDK をインストールします。
dotnet build
NuGet を使用して SDK をインストールします。詳細については、「NuGet パッケージ」をご参照ください。
Visual Studio を使用して SDK をインストールします。
Visual Studio の ソリューション エクスプローラーNuGet パッケージの管理 パネルで、プロジェクトを右クリックし、 を選択します。
NuGet パッケージ マネージャー参照 パネルで、 タブをクリックします。
[参照] タブで、検索ボックスに
AlibabaCloud.SDKと入力し、結果リストから [作成者] 列に aliyun-openapi-sdk と表示されている AlibabaCloud.SDK.Iot20180120 エントリを選択します。 SDK の詳細については、「AlibabaCloud.SDK.Iot20180120」をご参照ください。インストール をクリックします。
その他のインストール方法
dotnetCLI を使用して 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 の初期化
AlibabaCloud.OpenApiClient.Models.Config クラスの config オブジェクトを作成し、AccessKey ID、AccessKey secret、リージョン ID などの SDK 初期化情報を格納します。
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" 形式の名前を持つクラスはレスポンスを示します。
手順
SDK を初期化します。詳細については、このトピックの「SDK の初期化」セクションをご参照ください。
リクエスト インスタンスを
${API 操作名}+"Request"クラスで生成することで、API リクエストを作成します。request インスタンスの request.${リクエスト パラメーター} メソッドを呼び出して、リクエスト パラメーターを指定します。
応答
${API 操作名}+"Response"クラスの${API 操作名}(リクエスト)クライアント本文ヘッダー インスタンスを作成して、レスポンスを取得します。 インスタンスの メソッドを呼び出して、API リクエストに対するレスポンスを取得します。レスポンスには、サーバーから返された と が含まれます。メソッドを呼び出して、レスポンスパラメーターの値を取得します。たとえば、
response.body.RequestIdメソッドを呼び出して、API リクエストに対して Alibaba Cloud によって生成された一意の識別子を取得できます。 RequestId は一般的なレスポンスパラメータです。一般的なレスポンスパラメータには、Success、ErrorMessage、および Code も含まれます。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 とレスポンスを表示できます。