IoT Platform SDK for Javaを使用すると、Javaプログラムを使用してIoT Platformリソースを効率的に管理できます。 SDKを依存関係としてMavenプロジェクトに追加できます。 インストールパッケージをローカルディレクトリにダウンロードし、SDKをインストールすることもできます。
SDK のインストール
Java 開発環境をインストールします。
公式Java WebサイトからJavaインストールパッケージをダウンロードし、指示に従ってJavaをインストールします。
IoT Platform SDK for Javaをインストールします。
公式Apache Maven WebサイトからMavenインストールパッケージをダウンロードします。
次の依存関係をMavenプロジェクトに追加します。
最新バージョンのIoT Platform SDK for Javaの依存関係:
<!-https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-iot-> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-iot</artifactId> <version>7.41.0</version> </dependency>
Alibaba Cloud SDK for Javaの依存関係:
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.5.6</version> </dependency>
SDKの初期化
SDK初期化情報を格納するためのIClientProfileクラスのプロファイルオブジェクトを作成します。 次に、DefaultAcsClientクラスのクライアントインスタンスを作成します。 DefaultAcsClient(profile)
メソッドを呼び出して、SDKの初期化情報を読み込みます。
文字列accessKey = System.getenv("ACCESS_KEY_ID");
String accessSecret = System.getenv("ACCESS_KEY_SECRET");
IClientProfile profile = DefaultProfile.getProfile("${RegionId}", accessKey, accessSecret);
DefaultAcsClient client = new DefaultAcsClient(profile); // SDKクライアントを初期化します。
パラメーター | 説明 |
profile | SDKの初期化情報を格納するために使用されるオブジェクト。 IoT Platformコンソールの左上隅にリージョンを表示できます。 リージョンIDの詳細については、「リージョンとゾーン」をご参照ください。 |
次の例は、IoT Platformサービスが中国 (上海) リージョンにある場合にSDKを初期化する方法を示しています。
文字列accessKey = System.getenv("ACCESS_KEY_ID");
String accessSecret = System.getenv("ACCESS_KEY_SECRET");
IClientProfile profile = DefaultProfile.getProfile("cn-shanghai" 、accessKey、accessSecret);
DefaultAcsClient client = new DefaultAcsClient(profile); // SDKクライアントを初期化します。
リクエストを開始するInitiate a request
SDKは、API操作ごとに2つのクラスをカプセル化します。 クラス名は、${API操作名} + "リクエスト"
および ${API操作名} + "レスポンス"
形式です。
${API操作名} + "リクエスト"
: このクラスは、API操作を呼び出すために使用されます。 このクラスのrequest
インスタンスを作成し、set +${request parameter}
メソッドを呼び出してリクエストパラメーターを指定できます。${API operation name}+ "Response"
: DefaultAcsClientから作成されたクライアントインスタンスのgetAcsResponse(request)
メソッドを呼び出して、レスポンスを取得できます。 ${API操作名} + "response" クラスのレスポンスインスタンスのget +${response parameter}
メソッドを呼び出して、レスポンスパラメーターの値を取得できます。たとえば、
response.getSuccess()
メソッドを呼び出して、Successパラメーターを取得できます。 このパラメーターは、リクエストが成功したかどうかを示す共通のレスポンスパラメーターです。 一般的な応答パラメータには、RequestId、ErrorMessage、およびCodeも含まれます。
IoT PlatformのAPI操作の詳細については、「関数別の操作のリスト」をご参照ください。 各API操作のrequest
およびresponse
パラメーターの詳細については、APIのドキュメントをご参照ください。
次の例は、Pub操作を呼び出してメッセージをトピックに公開する方法を示しています。 リクエストパラメーターの詳細については、「Pub」をご参照ください。
次のサンプルコードでは、${iotInstanceId}
にインスタンスのIDを指定します。 インスタンスのIDは、IoT Platformコンソールの [概要] ページで確認できます。
インスタンスにIDがある場合は、このパラメーターにIDを指定する必要があります。 それ以外の場合、要求は失敗します。
インスタンスに対して [概要] ページまたはIDが生成されていない場合、このパラメーターを指定する必要はありません。 IotInstanceIdパラメーターに関連するリクエストコードを削除するか、パラメーターに空の文字列 (
""
) を指定する必要があります。 それ以外の場合、要求は失敗します。
IoT Platformインスタンスの詳細については、「概要」をご参照ください。 インスタンスの購入方法の詳細については、「Enterprise Editionインスタンスの購入」をご参照ください。 よくある質問の詳細については、「IoT Platformインスタンスに関するFAQ」をご参照ください。
PubRequest request = new PubRequest();
request.setIotInstanceId("${iotInstanceId}");
request.setProductKey("${productKey}");
request.setMessageContent(Base64.encodeBase64String("hello world".getBytes()));
request.setTopicFullName("/${productKey}/${deviceName}/user/get");
request.setQos(0); // QoS 0とQoS 1がサポートされています。
トライ
{
PubResponse response = client.getAcsResponse(request);
System.out.println(response.getSuccess());
System.out.println(response.getCode());
System.out.println(response.getErrorMessage());
}
catch (ServerException e)
{
e.printStackTrace();
}
catch (ClientException e)
{
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
e.printStackTrace();
}
付録: サンプルコード
のAPI操作のサンプルコードを表示またはダウンロードできます。 IoT Platform SDKサンプルセンター Java、Python、PHPなどのSDKのサンプルコード。NETおよびGoが提供されます。
Alibaba Cloud OpenAPI Explorerは、API操作用のオンラインデバッグツールを提供します。 [APIデバッグ] ページでは、API操作の検索、API操作の呼び出し、およびさまざまなSDKのAPI操作のサンプルコードの生成ができます。 ページの右側で、SDKのサンプルコードを [サンプルコード] タブに表示できます。 [デバッグ結果] タブでは、実際のリクエストURLとレスポンスをJSON形式で表示できます。